Install Libraries

if (!require("tidybayes")) install.packages("tidybayes")
package ‘svUnit’ successfully unpacked and MD5 sums checked
package ‘ggdist’ successfully unpacked and MD5 sums checked
package ‘arrayhelpers’ successfully unpacked and MD5 sums checked
package ‘tidybayes’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\pjflood\AppData\Local\Temp\RtmpYf5WcY\downloaded_packages

Load Libraries


library(openxlsx) #read and write .xlsx
library(RVAideMemoire) #used for testing lm model assumptions
*** Package RVAideMemoire v 0.9-83-12 ***
library(DHARMa) #checking model assumptions and output
This is DHARMa 0.4.7. For overview type '?DHARMa'. For recent changes, type news(package = 'DHARMa')
library(fitdistrplus) #insight into which distribution to use
Loading required package: MASS
Loading required package: survival
library(logspline) #k-s test for selected distribution 
library(car) #partial regression plots
Loading required package: carData
library(effectsize) #calculate effect sizes
library(ggeffects) #marginal effect plots
library(marginaleffects) #marginal effects
Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     
Please cite the software developers who make your work possible.
One package:             citation("package_name")
All project packages:    softbib::softbib()
library(emmeans) #posthoc analyses
Welcome to emmeans.
Caution: You lose important information if you filter this package's results.
See '? untidy'
library(ggpmisc) 
Loading required package: ggpp
Loading required package: ggplot2

Attaching package: ‘ggpp’

The following object is masked from ‘package:ggplot2’:

    annotate
library(ggpubr) #arranging multipanel plots

Attaching package: ‘ggpubr’

The following objects are masked from ‘package:ggpp’:

    as_npc, as_npcx, as_npcy
library(ggrepel) #text labels on plots w/o overlapping
library(rstatix) #used for emmeans wrappers 

Attaching package: ‘rstatix’

The following objects are masked from ‘package:effectsize’:

    cohens_d, eta_squared

The following object is masked from ‘package:MASS’:

    select

The following object is masked from ‘package:stats’:

    filter
library(brms) #Bayesian modeling
Loading required package: Rcpp
Loading 'brms' package (version 2.22.0). Useful instructions
can be found by typing help('brms'). A more detailed introduction
to the package is available through vignette('brms_overview').

Attaching package: ‘brms’

The following object is masked from ‘package:survival’:

    kidney

The following object is masked from ‘package:stats’:

    ar
library(loo) #leave-one-out cross-validation of Bayesian models
This is loo version 2.8.0
- Online documentation and vignettes at mc-stan.org/loo
- As of v2.0.0 loo defaults to 1 core but we recommend using as many as possible. Use the 'cores' argument or set options(mc.cores = NUM_CORES) for an entire session. 
- Windows 10 users: loo may be very slow if 'mc.cores' is set in your .Rprofile file (see https://github.com/stan-dev/loo/issues/94).
library(MuMIn) #multi-model selection
Registered S3 methods overwritten by 'MuMIn':
  method        from 
  nobs.multinom broom
  nobs.fitdistr broom

Attaching package: ‘MuMIn’

The following object is masked from ‘package:loo’:

    loo

The following object is masked from ‘package:brms’:

    loo
library(tidyverse) #data manipulation
── Attaching core tidyverse packages ────────────────────────────────────────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ lubridate 1.9.4     ✔ tibble    3.3.0
✔ purrr     1.1.0     ✔ tidyr     1.3.1
── Conflicts ──────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
✖ ggpp::annotate() masks ggplot2::annotate()
✖ dplyr::filter()  masks rstatix::filter(), stats::filter()
✖ dplyr::lag()     masks stats::lag()
✖ dplyr::recode()  masks car::recode()
✖ dplyr::select()  masks rstatix::select(), MASS::select()
✖ purrr::some()    masks car::some()
ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(tidybayes) #data manipulation

Attaching package: ‘tidybayes’

The following objects are masked from ‘package:brms’:

    dstudent_t, pstudent_t, qstudent_t, rstudent_t

Load Data

all.grow.merge <- read.xlsx("~/GitHub/EAGER_growth/Outputs/all_grow_lake_join.xlsx") %>% 
  mutate(age_group = as.factor(age_group))

Format data

Mean length per species per age class over the entire dataset

mean.length.age.class <- all.grow.merge %>% 
  group_by(species, age_group) %>% 
  summarise(mean = mean(length_mean_mm, na.rm = T)) %>% 
  mutate(Species = case_when(
    species == "black_crappie" ~ "Black Crappie",
    species == "bluegill" ~ "Bluegill",
    species == "brown_trout" ~ "Brown Trout",
    species == "cisco" ~ "Cisco",
    species == "common_white_sucker" ~ "White Sucker",
    species == "largemouth_bass" ~ "Largemouth Bass",
    species == "northern_pike" ~ "Northern Pike",
    species == "pumpkinseed_sunfish" ~ "Pumpkinseed Sunfish",
    species == "rainbow_trout" ~ "Rainbow Trout",
    species == "rock_bass" ~ "Rock Bass", 
    species == "smallmouth_bass" ~ "Smallmouth Bass",
    species == "walleye" ~ "Walleye",
    species == "yellow_perch" ~ "Yellow Perch",
    T ~ species
  )) %>% 
  rename(Age = age_group) 
`summarise()` has grouped output by 'species'. You can override using the `.groups` argument.

Linear Regressions

Data may not conform well to model assumptions. The goal of these models is to ask whether or not a given species size class is increasing or decreasing in size through time. Not necessary to over interpret the exact amount of change, although we do report that, it should be taken with a grain of salt.

Black Crappie

###Model

#filter data for only Black Crappie, Pomooxis nigromaculatus 
pomnig <- all.grow.merge %>% filter(species == "black_crappie") %>% 
  filter(!age_group %in% c(12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22), #match age groups in BRTs
         !is.na(age_group), !is.na(begin_date_year), !is.na(length_mean_mm),
         !is.na(log_max_depth), !is.na(logarea)) %>% 
  mutate(age_group = fct_rev(age_group))

#linear model
pomnig.lm <- lm(length_mean_mm ~ begin_date_year*age_group + log_max_depth + logarea + doy, data = pomnig)
summary(pomnig.lm)

Call:
lm(formula = length_mean_mm ~ begin_date_year * age_group + log_max_depth + 
    logarea + doy, data = pomnig)

Residuals:
     Min       1Q   Median       3Q      Max 
-151.482  -21.158   -1.023   19.055  208.297 

Coefficients:
                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                  8.829e+02  8.712e+02   1.013 0.310923    
begin_date_year             -2.913e-01  4.346e-01  -0.670 0.502785    
age_group10                  8.873e+02  1.065e+03   0.833 0.404725    
age_group9                   1.680e+02  9.729e+02   0.173 0.862899    
age_group8                  -1.341e+02  9.263e+02  -0.145 0.884937    
age_group7                  -5.381e+02  9.030e+02  -0.596 0.551269    
age_group6                  -8.386e+02  8.901e+02  -0.942 0.346182    
age_group5                  -9.864e+02  8.859e+02  -1.113 0.265591    
age_group4                  -6.794e+02  8.826e+02  -0.770 0.441443    
age_group3                  -3.673e+02  8.811e+02  -0.417 0.676775    
age_group2                  -5.982e+01  8.812e+02  -0.068 0.945878    
age_group1                   1.076e+02  8.923e+02   0.121 0.903982    
age_group0                  -4.361e+02  1.038e+03  -0.420 0.674366    
log_max_depth                3.228e+00  6.873e-01   4.696 2.72e-06 ***
logarea                      1.434e+00  3.783e-01   3.789 0.000153 ***
doy                          9.739e-02  9.341e-03  10.427  < 2e-16 ***
begin_date_year:age_group10 -4.505e-01  5.315e-01  -0.848 0.396676    
begin_date_year:age_group9  -9.674e-02  4.855e-01  -0.199 0.842078    
begin_date_year:age_group8   4.880e-02  4.622e-01   0.106 0.915921    
begin_date_year:age_group7   2.439e-01  4.506e-01   0.541 0.588273    
begin_date_year:age_group6   3.870e-01  4.441e-01   0.871 0.383536    
begin_date_year:age_group5   4.520e-01  4.420e-01   1.023 0.306530    
begin_date_year:age_group4   2.885e-01  4.403e-01   0.655 0.512390    
begin_date_year:age_group3   1.177e-01  4.396e-01   0.268 0.788821    
begin_date_year:age_group2  -5.552e-02  4.397e-01  -0.126 0.899519    
begin_date_year:age_group1  -1.620e-01  4.453e-01  -0.364 0.715956    
begin_date_year:age_group0   9.333e-02  5.195e-01   0.180 0.857425    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 32.64 on 5124 degrees of freedom
  (55 observations deleted due to missingness)
Multiple R-squared:  0.7207,    Adjusted R-squared:  0.7193 
F-statistic: 508.6 on 26 and 5124 DF,  p-value: < 2.2e-16
#calculate and interpret effect sizes
eta_squared(pomnig.lm)
          begin_date_year                 age_group             log_max_depth                   logarea 
              0.024069335               0.685460028               0.001486910               0.000718171 
                      doy begin_date_year:age_group 
              0.006187036               0.002806738 
#interpret(eta_squared(pomnig.lm), rules = "cohen1992")

#calculate AIC score
AIC(pomnig.lm)
[1] 50554.08
#examine model fit
testDispersion(pomnig.lm)

    DHARMa nonparametric dispersion test via sd of residuals fitted vs. simulated

data:  simulationOutput
dispersion = 0.99547, p-value = 0.8
alternative hypothesis: two.sided

simulation.output <- simulateResiduals(fittedModel = pomnig.lm)

residuals(pomnig.lm)
            1             2             3             4             5             6             7             8 
 21.123904853  31.531410044  18.139824291   7.725728562   2.787960356   6.332061000  32.916046075  12.984253604 
            9            10            11            12            13            14            15            16 
 10.216477110  23.412068974  17.139313571  36.435239651 -15.577165547 -15.755651075   4.157822559   1.322990337 
           17            18            19            20            21            22            23            24 
  3.274090080   5.930857395 -26.342555843 -21.359946138  -0.249704539  23.819921863  36.463336110  31.648785836 
           25            26            27            28            29            30            31            32 
 25.193615033  19.912531568 -42.059485593  15.803250935  49.339557703  -0.807154400  24.464013645  -0.896525492 
           33            34            35            36            37            38            39            40 
-15.519374471 -29.613485593  24.058250935  38.756224370  17.819512266  32.572475183  16.171155817  16.883474508 
           41            42            43            44            45            46            47            48 
-44.853485593 -34.658333357 -58.387227265 -82.621742361 -98.769973076 -47.567792495 -83.079650046 -68.190151253 
           49            50            51            52            53            54            55            56 
-28.639611054 -33.485723652 -91.247363371 -62.542325647 -59.682040341 -72.097541549  -3.760334683 -21.457456861 
           57            58            59            60            61            62            63            64 
-35.488113947 -47.762573085  10.070569364 -96.324931844 -36.794847156   8.053550637  -9.671876153   9.577550637 
           65            66            67            68            69            70            71            72 
 43.222144079   6.148550637 -43.136814341  -1.258726197 -10.116814341  59.313732606 -25.578031855  72.288980038 
           73            74            75            76            77            78            79            80 
-22.570864077 -58.574621477  33.961140388  17.678980038 -30.634621477   6.065102097 -21.173729777 -42.194897903 
           81            82            83            84            85            86            87            88 
 47.938465638  46.761163297  57.468190241  41.453534506  58.956684137  68.866524766 -28.648231236 -39.268201028 
           89            90            91            92            93            94            95            96 
 34.569163297  49.213190241  57.540201172  60.166207946  66.326524766 -30.341564569  16.281163297  42.863190241 
           97            98            99           100           101           102           103           104 
 14.057101487 -54.556075961 -45.686500028 -62.986875570   7.283768154 -10.348145945 -47.403243740 -55.402742628 
          105           106           107           108           109           110           111           112 
-36.796500028 -20.737442206 -50.789910406 -57.116500028  -7.106875570 -50.794013765 -16.730500028   0.461851059 
          113           114           115           116           117           118           119           120 
-14.022044256  -7.627157967  -8.865432004  -8.851482275 -11.482044256  36.015053804 -11.404799659  -0.007157967 
          121           122           123           124           125           126           127           128 
  1.308517725 -10.635377590 -14.452799659  -3.817157967  -5.778287500  -4.632098671 -14.784946196 -11.488872570 
          129           130           131           132           133           134           135           136 
-22.823021171  31.095232281  15.390683151  42.468365063  49.670735587 -18.702045422  26.001796573  55.435720774 
          137           138           139           140           141           142           143           144 
 53.393292856  13.160974767  43.858345292  40.890564283   2.743528075  66.344997145  34.235954997  70.645874784 
          145           146           147           148           149           150           151           152 
 25.216124418  -1.959912347   1.594382081 -21.909265301 -14.363334719   2.496055377  29.451960792   4.777142703 
          153           154           155           156           157           158           159           160 
 23.870574214   3.249696011   3.448555377  25.006960792  22.557142703   9.439513228  -0.107444623  36.542794126 
          161           162           163           164           165           166           167           168 
 -6.711444623  47.549460792  32.717142703   4.359513228  52.826732219  -3.380188731 -42.752750433  13.876396150 
          169           170           171           172           173           174           175           176 
-14.245744287 -38.942750433  23.920941604  12.515834168 -19.450113149 -40.514810117 -27.136330388 -33.177032339 
          177           178           179           180           181           182           183           184 
-24.530113149 -34.799810117 -41.024283399 -22.056330388 -30.456779815 -16.129663722 -28.340113149 -28.177667260 
          185           186           187           188           189           190           191           192 
-19.857616732 -31.303446482 -33.910810117 -32.557616732 -12.470702922 -22.056330388 -24.281324603  34.138675397 
          193           194           195           196           197           198           199           200 
-24.671651885 -82.534222675 -34.791243520 -26.102162334  -9.734478281  -3.839926388  -3.270459572  -9.323868577 
          201           202           203           204           205           206           207           208 
 33.762173343  42.105650722  45.203079932  23.445978004  29.963079932  14.555978004   0.960809581 -17.382421344 
          209           210           211           212           213           214           215           216 
 -3.720047562 -31.352421344 -43.129343527 -56.455342669 -37.546890506 -47.581222780  -2.799408839  30.114838623 
          217           218           219           220           221           222           223           224 
  2.756632241 -43.198192520 -26.554096644 -21.736003158 -15.873534127 -13.576526747  -9.903134044   4.865462950 
          225           226           227           228           229           230           231           232 
  3.879961743 -15.329953569  16.024021886  -4.079846601  31.303817518  25.777837750 -53.665305483  27.314037269 
          233           234           235           236           237           238           239           240 
 -0.924089025  25.207817518  -8.544089025  28.763817518  29.164504417  50.474694517 -33.596166145   0.134244309 
          241           242           243           244           245           246           247           248 
 28.763817518  31.847866608   3.813478863 -15.624946800 -26.237921580 -57.189276822  28.037866608   1.273478863 
          249           250           251           252           253           254           255           256 
 -4.981137276   8.126202438  13.621045946 -15.422903828 -48.063872740 -71.135013293 -48.557947940 -60.556904129 
          257           258           259           260           261           262           263           264 
-48.063872740 -47.799978859 -79.178346627 -72.687947940 -35.156904129 -38.196274351 -63.712999249   6.994359844 
          265           266           267           268           269           270           271           272 
  6.969832215   7.417667192   5.414896864  11.566359844  -1.358436470 -33.602695904   1.643611948  23.207451598 
          273           274           275           276           277           278           279           280 
 29.536204166  64.024439705  -6.171168643  30.463337675  26.801423576  58.749659114  64.296826893   6.528831357 
          281           282           283           284           285           286           287           288 
 27.923337675  28.071423576  33.816826893  45.275742280  -0.870152755 -11.218234821 -69.560990224  18.036651468 
          289           290           291           292           293           294           295           296 
-30.163752172 -30.398576934  -7.404481057 -10.958249652 -14.921209904  -5.878249652 -39.443084682 -27.623752172 
          297           298           299           300           301           302           303           304 
 -5.878249652 -36.903084682  21.069462109  34.004381735  47.278754268  58.774971508  43.317715068   9.178754268 
          305           306           307           308           309           310           311           312 
 28.924381735  61.248754268  52.424971508  32.311048401  18.894812078   5.696018582   8.366413236  -5.116057641 
          313           314           315           316           317           318           319           320 
-18.087429695  11.241244696  -7.003981418   0.292841807  -0.798057641  29.985725592  36.516054151  16.321244696 
          321           322           323           324           325           326           327           328 
 -9.543981418  -4.152158193  15.711942359  19.107702130   0.327570305   2.832841807 -19.848057641  29.267702130 
          329           330           331           332           333           334           335           336 
  9.852570305  41.967702130  21.401244696   3.156018582  10.631942359  29.139058925  -3.635234260 -16.439749356 
          337           338           339           340           341           342           343           344 
-17.347980071  -1.705799490  -6.102657041  14.040250644 -10.997980071 -27.105799490  -7.445234260 -13.391749356 
          345           346           347           348           349           350           351           352 
-16.077980071   3.374200510   2.614727322   0.783035218  13.536661435 -23.223839253 -50.241761096  10.581686677 
          353           354           355           356           357           358           359           360 
 -6.956981428 -56.836076013  13.421605899 -42.241023577  -8.378804586  -4.776780773 -16.045840794  26.454755250 
          361           362           363           364           365           366           367           368 
 10.236197864 -23.309406783 -36.039048230 -26.623530323  10.238885312   3.396585963  36.796964411 -25.647363811 
          369           370           371           372           373           374           375           376 
-15.230913574 -19.798736789 -13.718679854 -32.171537682 -19.629094780  -7.756943995  18.697896783  -9.720445522 
          377           378           379           380           381           382           383           384 
 -1.308341759 -16.276598403  -2.888610661 -45.168947471 -29.712907144 -42.015018250 -59.240717285 -64.928587916 
          385           386           387           388           389           390           391           392 
-10.538043409 -32.892280804  -4.630717285 -56.038587916 -31.198947471 -29.184050618 -21.748587916   3.451090597 
          393           394           395           396           397           398           399           400 
  1.988544604  58.962716461  -0.456299698   4.884157937 -27.774067050 -34.665905505   4.482578865  -3.501612124 
          401           402           403           404           405           406           407           408 
 -1.573950275  11.648138887   7.847491270  -4.914067050 -22.600905505 -15.837421135  18.026722826   7.562478270 
          409           410           411           412           413           414           415           416 
 -6.122508730 -50.634067050   0.894094495 -39.749473686  17.722478270  -8.581612124   0.641472220  11.657491270 
          417           418           419           420           421           422           423           424 
-19.425905505   0.909505558  10.104145659  -1.519233111  18.248601601 -11.790494442  -1.749187674  57.195268267 
          425           426           427           428           429           430           431           432 
-12.806494442   9.499383755  29.255268267  24.772410440  14.959849505  29.086459210  27.372705278  64.786018490 
          433           434           435           436           437           438           439           440 
 42.014003602 -27.804160065 -38.064478154 -66.422107629 -14.144888638 -71.041046643  16.288075154 -16.987995469 
          441           442           443           444           445           446           447           448 
 28.880621285  19.078955989   7.785449640   4.171464884  -8.099497924  -8.738945600  -1.288436938 -62.963434610 
          449           450           451           452           453           454           455           456 
-57.121530339 -39.834298545 -19.721056701  -3.883449458  14.623831867 -36.881869617 -28.283829290  -6.634607063 
          457           458           459           460           461           462           463           464 
-26.823639431   1.778489938 -84.595967008 -34.664765066 -52.975288221 -66.356177739 -73.416884137 -69.741588223 
          465           466           467           468           469           470           471           472 
-58.692746228 -55.183624431 -35.119695054 -45.377480045 -57.004560039 -58.510760943 -49.413541952 -75.406366623 
          473           474           475           476           477           478           479           480 
-59.516813379 -32.264094276 -50.048541952 -92.339699957  41.979421840  49.343351218 -25.202189546 -39.884760336 
          481           482           483           484           485           486           487           488 
-21.425195597 -38.088155850 -44.932578403 -91.396697294 -76.915250748 -41.726119106 -48.091770528 -10.409400003 
          489           490           491           492           493           494           495           496 
-27.664681012   1.481660983 -15.188106109  -2.631287843  26.192821438   8.098437937  -4.601562063 -27.725267846 
          497           498           499           500           501           502           503           504 
  3.037286333 -31.798120303 -11.239225188 -11.884588409 -13.910388486  11.808760873  -6.426930768  46.221939698 
          505           506           507           508           509           510           511           512 
 17.748744924  29.088182942  16.888760873  21.513069232  -9.863093807  -5.219280558  -6.156509206 -27.669264609 
          513           514           515           516           517           518           519           520 
 47.228377083   3.347467895  -9.536522378  -3.949280558 -22.666509206  -9.640518318   1.613653539  -7.967932214 
          521           522           523           524           525           526           527           528 
 17.320203852   3.460945695  15.264351029 -26.967859696 -23.202227589  -9.843642988  -3.416398391  -2.869886232 
          529           530           531           532           533           534           535           536 
  1.662969264  -6.880309654  -9.798756698  31.689020351  -3.746723377  17.103412808   6.217863950  -9.185765525 
          537           538           539           540           541           542           543           544 
 30.391453466  15.504963389   3.850125077  41.511140322  16.116844180  27.754063171  -1.202094834  36.698496033 
          545           546           547           548           549           550           551           552 
 17.299401449  38.027083360   2.049453885  12.319282580 -23.751867098 -11.394443724 -31.981297141 -34.103859123 
          553           554           555           556           557           558           559           560 
-23.527947860  -9.166972834 -32.383984606 -15.324999530 -30.400455969 -23.757051013 -42.336833774 -10.781732034 
          561           562           563           564           565           566           567           568 
 15.644242991  65.329780125  60.133121429 -55.558238828 -64.990077282 -78.116978797 -76.006592913 -79.289948951 
          569           570           571           572           573           574           575           576 
-20.221693507   1.121877947  22.258234006  16.055340098 -19.814762923 -29.890162144 -14.650162144 -19.406662831 
          577           578           579           580           581           582           583           584 
-36.264584675 -73.070162144 -11.151662831  -7.054584675  -9.246662831   1.980408640  13.642575952  11.249339624 
          585           586           587           588           589           590           591           592 
-14.730849077  34.818980069  12.513687063  20.676718814   1.697210255   6.350768196   7.923774609  31.987020396 
          593           594           595           596           597           598           599           600 
 17.584882678  30.253276115  21.687939822  46.567254172  35.595289297  78.583453690  48.228660730   5.103233940 
          601           602           603           604           605           606           607           608 
 35.137254172   8.501955964  17.748660730   7.643233940  47.837254172  77.614110939 -33.229393368 -44.951759070 
          609           610           611           612           613           614           615           616 
 11.444666811  -0.252621148  -3.725825716 -18.565138817  -7.426078051 -10.801615383  10.487727368 -16.495333189 
          617           618           619           620           621           622           623           624 
 -4.627065592 -45.515908429  16.606229641  23.911717950  -1.255333189  13.642302100 -10.428475673 -23.778368858 
          625           626           627           628           629           630           631           632 
 35.276105029 -12.085001090 -39.865035524  14.109438362 -29.018334423  17.708297809  -3.267029915   0.495241181 
          633           634           635           636           637           638           639           640 
  4.697082456 -29.159568960 -21.966011019 -24.278563204 -13.476895084 -54.624207122 -24.339415689 -45.793004606 
          641           642           643           644           645           646           647           648 
 16.662200854 -29.349758819  31.800431040  -1.827439591   4.508103463   9.042200854  -2.583177382  14.904862945 
          649           650           651           652           653           654           655           656 
-16.362581494  -9.669947196  -7.102817827 -29.130608106 -38.309585358 -17.823177382   4.744862945 -15.092581494 
          657           658           659           660           661           662           663           664 
-28.084947196  12.854325031  11.297725227 -28.912273320  37.695206075  10.116822618  -6.685137055  35.427725227 
          665           666           667           668           669           670           671           672 
-42.773431759  26.264809244  17.345167798  25.452200856  56.314513772 -29.650098426  18.644809244   3.375167798 
          673           674           675           676           677           678           679           680 
 -9.435931759 -19.455190756 -11.018165536   4.285534190  69.653934471  87.500151710  71.249877509  17.696816178 
          681           682           683           684           685           686           687           688 
-16.317189164 -19.572905285  -6.185678070  19.374287495  -2.498647151   4.273399103 -23.706280073 -12.164571952 
          689           690           691           692           693           694           695           696 
 19.374287495   0.463399103  30.521352849  -4.836973562  -3.219297677  14.143975428  11.975312206  16.480851727 
          697           698           699           700           701           702           703           704 
 10.951127207   8.412135557   0.394085133   9.337921911  15.536794765  15.849070245   7.361317707  34.039679950 
          705           706           707           708           709           710           711           712 
-22.428203433 -43.124523080 -28.000632718 -35.802408199 -37.651503224 -34.777160473 -29.022410350   9.763847322 
          713           714           715           716           717           718           719           720 
  2.457608779  13.319847322 -92.965061789  31.667608779   5.269352136  -2.810464750   9.488619796  21.854129914 
          721           722           723           724           725           726           727           728 
 17.915297960 -39.464201279  -6.739157982  19.314129914  -2.404702040 -32.860201279  -6.421657982  -3.545870086 
          729           730           731           732           733           734           735           736 
  2.675297960   5.812440132  54.784758822  17.287547954  -8.857149015   0.116044370   9.570157659  13.905460690 
          737           738           739           740           741           742           743           744 
 -3.537345925   2.506029706  -9.257930500 -24.462927242 -13.387232637  34.128070395  14.145263780  13.415306077 
          745           746           747           748           749           750           751           752 
 51.604679204   0.617915782  53.139907386  -9.635466186 -25.259476081   5.201986657  40.143316390  10.064422482 
          753           754           755           756           757           758           759           760 
-18.888323329  -6.228013343  -5.775439022  26.125388735  -8.613634897  -4.737262364  -7.803711791  65.654866717 
          761           762           763           764           765           766           767           768 
-12.267025192  -5.427319326 -12.134435420   3.630867612 -14.405472488  12.231948325 -11.019458233 -10.984756441 
          769           770           771           772           773           774           775           776 
 -4.102601466 -31.073258714 -15.158508592  -8.342051675 -13.113478465   3.517398534  40.046741286  28.021491408 
          777           778           779           780           781           782           783           784 
 24.493680729   3.341948325 -33.879458233 -31.304756441 -11.976601466 -36.999925381  -4.998508592   3.093105489 
          785           786           787           788           789           790           791           792 
-19.845843532  -0.102579754  27.804854131  -1.948029303   0.720613902  45.160741020 -12.860843532 -17.644069646 
          793           794           795           796           797           798           799           800 
 -7.722579754  13.291970697 -26.195843532  -1.795913088   9.389854131  18.371970697  18.500613902   2.242594221 
          801           802           803           804           805           806           807           808 
  7.280701441  10.132524665  -2.590948345 -21.650821227  32.257368107  10.979191332 -35.818396989 -48.117290897 
          809           810           811           812           813           814           815           816 
-74.891805993 -68.702977885 -50.179284698 -37.630713678 -29.980214885 -38.689674686 -30.140130198 -33.076154742 
          817           818           819           820           821           822           823           824 
 34.419091403  70.302342950  35.168367774  57.504952655  45.129231818  80.110817571  37.509231818  -7.075275625 
          825           826           827           828           829           830           831           832 
 -5.923968856   6.894724375   6.894724375   1.696031144  -8.345275625  43.769904383  17.968325311  -3.621674689 
          833           834           835           836           837           838           839           840 
 10.345802606 -43.403568125 -40.852396327 -31.330003994  -8.903353361 -19.795300104   1.547836247  -6.182697435 
          841           842           843           844           845           846           847           848 
-58.361345903 -26.392163753 -50.218984877 -54.692457014 -39.437253470 -16.911014095   2.018646639   8.765588785 
          849           850           851           852           853           854           855           856 
 19.327836247   9.057302565   8.432556915  21.849293066 -59.900822189   3.835666431 -10.005690364  -4.935563246 
          857           858           859           860           861           862           863           864 
 -7.075338344  -4.503735175 -53.550822189  -6.324333569  -9.107338344  -5.247494792   3.717852202 -21.435690364 
          865           866           867           868           869           870           871           872 
  7.764436754 -56.090822189 -31.595690364  -3.759890104  41.293366092  34.094137723  18.756617639  13.586055657 
          873           874           875           876           877           878           879           880 
 49.223300255  34.520032758  36.104971056  13.253284306  -9.907329390  -8.018921409  -2.323152124   8.239028458 
          881           882           883           884           885           886           887           888 
-10.974495760  54.766754387  38.621638163   0.219279404 -22.226292995 -16.745186903   7.457390316   7.506289508 
          889           890           891           892           893           894           895           896 
-27.370568044  -5.388491083 -21.928519995 -35.552631294 -33.969071856 -28.229759714  -8.421979133 -35.140337891 
          897           898           899           900           901           902           903           904 
-50.199797692  13.346983508  27.116609725  -9.389890962  -4.717991054  14.616983508 -12.253390275  -3.387812806 
          905           906           907           908           909           910           911           912 
 32.312927759  24.492008946  17.156983508  21.186271142   9.227023710 -16.222958804  -2.723699918  46.157868954 
          913           914           915           916           917           918           919           920 
 11.000823885  43.987646437  28.303889037  34.453612553   8.337913518  25.933376221  19.822919275  -1.106387447 
          921           922           923           924           925           926           927           928 
 -2.668753148  13.233376221 -31.353650001   7.301056993   3.973612553  16.127246852  21.700042888  15.553920728 
          929           930           931           932           933           934           935           936 
 37.711400122  -0.178220146   4.758107042  14.220864735  22.067802753   8.175047351  11.635189043   3.895559510 
          937           938           939           940           941           942           943           944 
 11.731611343  40.307740159  19.573759208  18.242200888  28.368362434  27.094794253  20.865513470  20.016324098 
          945           946           947           948           949           950           951           952 
 24.734655814  19.042317663  12.870822973 -30.988124272 -22.391730135  20.266639335  -6.096830135  -2.048245254 
          953           954           955           956           957           958           959           960 
 10.198335621   8.945104028   9.336079053 -20.748990673 -13.670829128  18.075602691 -20.080256149   6.495924991 
          961           962           963           964           965           966           967           968 
 12.520033545  16.486756879  23.662999479  26.851957270  38.184701077 -23.441373576 -21.155469305 -29.903237511 
          969           970           971           972           973           974           975           976 
 48.049892902   4.002302505 -21.504482096  -9.149416651  -2.474272631 -11.435264912 -10.967674109  -3.712731963 
          977           978           979           980           981           982           983           984 
 13.453515499  31.122981817  21.184902833  -7.385407673  19.083673514  14.147536965   3.420274293  -5.273226394 
          985           986           987           988           989           990           991           992 
-12.606148238  -8.462460576  18.147445935  -0.024495355  22.275332729  -6.703879930 -17.463041407 -16.037960493 
          993           994           995           996           997           998           999          1000 
-17.985389555 -23.769824428 -18.155749251 -10.295118752 -34.608813110 -32.488030202 -28.883966151 -12.234193118 
 [ reached 'max' / getOption("max.print") -- omitted 4151 entries ]
residuals(pomnig.lm, quantileFunction = qnorm)
            1             2             3             4             5             6             7             8 
 21.123904853  31.531410044  18.139824291   7.725728562   2.787960356   6.332061000  32.916046075  12.984253604 
            9            10            11            12            13            14            15            16 
 10.216477110  23.412068974  17.139313571  36.435239651 -15.577165547 -15.755651075   4.157822559   1.322990337 
           17            18            19            20            21            22            23            24 
  3.274090080   5.930857395 -26.342555843 -21.359946138  -0.249704539  23.819921863  36.463336110  31.648785836 
           25            26            27            28            29            30            31            32 
 25.193615033  19.912531568 -42.059485593  15.803250935  49.339557703  -0.807154400  24.464013645  -0.896525492 
           33            34            35            36            37            38            39            40 
-15.519374471 -29.613485593  24.058250935  38.756224370  17.819512266  32.572475183  16.171155817  16.883474508 
           41            42            43            44            45            46            47            48 
-44.853485593 -34.658333357 -58.387227265 -82.621742361 -98.769973076 -47.567792495 -83.079650046 -68.190151253 
           49            50            51            52            53            54            55            56 
-28.639611054 -33.485723652 -91.247363371 -62.542325647 -59.682040341 -72.097541549  -3.760334683 -21.457456861 
           57            58            59            60            61            62            63            64 
-35.488113947 -47.762573085  10.070569364 -96.324931844 -36.794847156   8.053550637  -9.671876153   9.577550637 
           65            66            67            68            69            70            71            72 
 43.222144079   6.148550637 -43.136814341  -1.258726197 -10.116814341  59.313732606 -25.578031855  72.288980038 
           73            74            75            76            77            78            79            80 
-22.570864077 -58.574621477  33.961140388  17.678980038 -30.634621477   6.065102097 -21.173729777 -42.194897903 
           81            82            83            84            85            86            87            88 
 47.938465638  46.761163297  57.468190241  41.453534506  58.956684137  68.866524766 -28.648231236 -39.268201028 
           89            90            91            92            93            94            95            96 
 34.569163297  49.213190241  57.540201172  60.166207946  66.326524766 -30.341564569  16.281163297  42.863190241 
           97            98            99           100           101           102           103           104 
 14.057101487 -54.556075961 -45.686500028 -62.986875570   7.283768154 -10.348145945 -47.403243740 -55.402742628 
          105           106           107           108           109           110           111           112 
-36.796500028 -20.737442206 -50.789910406 -57.116500028  -7.106875570 -50.794013765 -16.730500028   0.461851059 
          113           114           115           116           117           118           119           120 
-14.022044256  -7.627157967  -8.865432004  -8.851482275 -11.482044256  36.015053804 -11.404799659  -0.007157967 
          121           122           123           124           125           126           127           128 
  1.308517725 -10.635377590 -14.452799659  -3.817157967  -5.778287500  -4.632098671 -14.784946196 -11.488872570 
          129           130           131           132           133           134           135           136 
-22.823021171  31.095232281  15.390683151  42.468365063  49.670735587 -18.702045422  26.001796573  55.435720774 
          137           138           139           140           141           142           143           144 
 53.393292856  13.160974767  43.858345292  40.890564283   2.743528075  66.344997145  34.235954997  70.645874784 
          145           146           147           148           149           150           151           152 
 25.216124418  -1.959912347   1.594382081 -21.909265301 -14.363334719   2.496055377  29.451960792   4.777142703 
          153           154           155           156           157           158           159           160 
 23.870574214   3.249696011   3.448555377  25.006960792  22.557142703   9.439513228  -0.107444623  36.542794126 
          161           162           163           164           165           166           167           168 
 -6.711444623  47.549460792  32.717142703   4.359513228  52.826732219  -3.380188731 -42.752750433  13.876396150 
          169           170           171           172           173           174           175           176 
-14.245744287 -38.942750433  23.920941604  12.515834168 -19.450113149 -40.514810117 -27.136330388 -33.177032339 
          177           178           179           180           181           182           183           184 
-24.530113149 -34.799810117 -41.024283399 -22.056330388 -30.456779815 -16.129663722 -28.340113149 -28.177667260 
          185           186           187           188           189           190           191           192 
-19.857616732 -31.303446482 -33.910810117 -32.557616732 -12.470702922 -22.056330388 -24.281324603  34.138675397 
          193           194           195           196           197           198           199           200 
-24.671651885 -82.534222675 -34.791243520 -26.102162334  -9.734478281  -3.839926388  -3.270459572  -9.323868577 
          201           202           203           204           205           206           207           208 
 33.762173343  42.105650722  45.203079932  23.445978004  29.963079932  14.555978004   0.960809581 -17.382421344 
          209           210           211           212           213           214           215           216 
 -3.720047562 -31.352421344 -43.129343527 -56.455342669 -37.546890506 -47.581222780  -2.799408839  30.114838623 
          217           218           219           220           221           222           223           224 
  2.756632241 -43.198192520 -26.554096644 -21.736003158 -15.873534127 -13.576526747  -9.903134044   4.865462950 
          225           226           227           228           229           230           231           232 
  3.879961743 -15.329953569  16.024021886  -4.079846601  31.303817518  25.777837750 -53.665305483  27.314037269 
          233           234           235           236           237           238           239           240 
 -0.924089025  25.207817518  -8.544089025  28.763817518  29.164504417  50.474694517 -33.596166145   0.134244309 
          241           242           243           244           245           246           247           248 
 28.763817518  31.847866608   3.813478863 -15.624946800 -26.237921580 -57.189276822  28.037866608   1.273478863 
          249           250           251           252           253           254           255           256 
 -4.981137276   8.126202438  13.621045946 -15.422903828 -48.063872740 -71.135013293 -48.557947940 -60.556904129 
          257           258           259           260           261           262           263           264 
-48.063872740 -47.799978859 -79.178346627 -72.687947940 -35.156904129 -38.196274351 -63.712999249   6.994359844 
          265           266           267           268           269           270           271           272 
  6.969832215   7.417667192   5.414896864  11.566359844  -1.358436470 -33.602695904   1.643611948  23.207451598 
          273           274           275           276           277           278           279           280 
 29.536204166  64.024439705  -6.171168643  30.463337675  26.801423576  58.749659114  64.296826893   6.528831357 
          281           282           283           284           285           286           287           288 
 27.923337675  28.071423576  33.816826893  45.275742280  -0.870152755 -11.218234821 -69.560990224  18.036651468 
          289           290           291           292           293           294           295           296 
-30.163752172 -30.398576934  -7.404481057 -10.958249652 -14.921209904  -5.878249652 -39.443084682 -27.623752172 
          297           298           299           300           301           302           303           304 
 -5.878249652 -36.903084682  21.069462109  34.004381735  47.278754268  58.774971508  43.317715068   9.178754268 
          305           306           307           308           309           310           311           312 
 28.924381735  61.248754268  52.424971508  32.311048401  18.894812078   5.696018582   8.366413236  -5.116057641 
          313           314           315           316           317           318           319           320 
-18.087429695  11.241244696  -7.003981418   0.292841807  -0.798057641  29.985725592  36.516054151  16.321244696 
          321           322           323           324           325           326           327           328 
 -9.543981418  -4.152158193  15.711942359  19.107702130   0.327570305   2.832841807 -19.848057641  29.267702130 
          329           330           331           332           333           334           335           336 
  9.852570305  41.967702130  21.401244696   3.156018582  10.631942359  29.139058925  -3.635234260 -16.439749356 
          337           338           339           340           341           342           343           344 
-17.347980071  -1.705799490  -6.102657041  14.040250644 -10.997980071 -27.105799490  -7.445234260 -13.391749356 
          345           346           347           348           349           350           351           352 
-16.077980071   3.374200510   2.614727322   0.783035218  13.536661435 -23.223839253 -50.241761096  10.581686677 
          353           354           355           356           357           358           359           360 
 -6.956981428 -56.836076013  13.421605899 -42.241023577  -8.378804586  -4.776780773 -16.045840794  26.454755250 
          361           362           363           364           365           366           367           368 
 10.236197864 -23.309406783 -36.039048230 -26.623530323  10.238885312   3.396585963  36.796964411 -25.647363811 
          369           370           371           372           373           374           375           376 
-15.230913574 -19.798736789 -13.718679854 -32.171537682 -19.629094780  -7.756943995  18.697896783  -9.720445522 
          377           378           379           380           381           382           383           384 
 -1.308341759 -16.276598403  -2.888610661 -45.168947471 -29.712907144 -42.015018250 -59.240717285 -64.928587916 
          385           386           387           388           389           390           391           392 
-10.538043409 -32.892280804  -4.630717285 -56.038587916 -31.198947471 -29.184050618 -21.748587916   3.451090597 
          393           394           395           396           397           398           399           400 
  1.988544604  58.962716461  -0.456299698   4.884157937 -27.774067050 -34.665905505   4.482578865  -3.501612124 
          401           402           403           404           405           406           407           408 
 -1.573950275  11.648138887   7.847491270  -4.914067050 -22.600905505 -15.837421135  18.026722826   7.562478270 
          409           410           411           412           413           414           415           416 
 -6.122508730 -50.634067050   0.894094495 -39.749473686  17.722478270  -8.581612124   0.641472220  11.657491270 
          417           418           419           420           421           422           423           424 
-19.425905505   0.909505558  10.104145659  -1.519233111  18.248601601 -11.790494442  -1.749187674  57.195268267 
          425           426           427           428           429           430           431           432 
-12.806494442   9.499383755  29.255268267  24.772410440  14.959849505  29.086459210  27.372705278  64.786018490 
          433           434           435           436           437           438           439           440 
 42.014003602 -27.804160065 -38.064478154 -66.422107629 -14.144888638 -71.041046643  16.288075154 -16.987995469 
          441           442           443           444           445           446           447           448 
 28.880621285  19.078955989   7.785449640   4.171464884  -8.099497924  -8.738945600  -1.288436938 -62.963434610 
          449           450           451           452           453           454           455           456 
-57.121530339 -39.834298545 -19.721056701  -3.883449458  14.623831867 -36.881869617 -28.283829290  -6.634607063 
          457           458           459           460           461           462           463           464 
-26.823639431   1.778489938 -84.595967008 -34.664765066 -52.975288221 -66.356177739 -73.416884137 -69.741588223 
          465           466           467           468           469           470           471           472 
-58.692746228 -55.183624431 -35.119695054 -45.377480045 -57.004560039 -58.510760943 -49.413541952 -75.406366623 
          473           474           475           476           477           478           479           480 
-59.516813379 -32.264094276 -50.048541952 -92.339699957  41.979421840  49.343351218 -25.202189546 -39.884760336 
          481           482           483           484           485           486           487           488 
-21.425195597 -38.088155850 -44.932578403 -91.396697294 -76.915250748 -41.726119106 -48.091770528 -10.409400003 
          489           490           491           492           493           494           495           496 
-27.664681012   1.481660983 -15.188106109  -2.631287843  26.192821438   8.098437937  -4.601562063 -27.725267846 
          497           498           499           500           501           502           503           504 
  3.037286333 -31.798120303 -11.239225188 -11.884588409 -13.910388486  11.808760873  -6.426930768  46.221939698 
          505           506           507           508           509           510           511           512 
 17.748744924  29.088182942  16.888760873  21.513069232  -9.863093807  -5.219280558  -6.156509206 -27.669264609 
          513           514           515           516           517           518           519           520 
 47.228377083   3.347467895  -9.536522378  -3.949280558 -22.666509206  -9.640518318   1.613653539  -7.967932214 
          521           522           523           524           525           526           527           528 
 17.320203852   3.460945695  15.264351029 -26.967859696 -23.202227589  -9.843642988  -3.416398391  -2.869886232 
          529           530           531           532           533           534           535           536 
  1.662969264  -6.880309654  -9.798756698  31.689020351  -3.746723377  17.103412808   6.217863950  -9.185765525 
          537           538           539           540           541           542           543           544 
 30.391453466  15.504963389   3.850125077  41.511140322  16.116844180  27.754063171  -1.202094834  36.698496033 
          545           546           547           548           549           550           551           552 
 17.299401449  38.027083360   2.049453885  12.319282580 -23.751867098 -11.394443724 -31.981297141 -34.103859123 
          553           554           555           556           557           558           559           560 
-23.527947860  -9.166972834 -32.383984606 -15.324999530 -30.400455969 -23.757051013 -42.336833774 -10.781732034 
          561           562           563           564           565           566           567           568 
 15.644242991  65.329780125  60.133121429 -55.558238828 -64.990077282 -78.116978797 -76.006592913 -79.289948951 
          569           570           571           572           573           574           575           576 
-20.221693507   1.121877947  22.258234006  16.055340098 -19.814762923 -29.890162144 -14.650162144 -19.406662831 
          577           578           579           580           581           582           583           584 
-36.264584675 -73.070162144 -11.151662831  -7.054584675  -9.246662831   1.980408640  13.642575952  11.249339624 
          585           586           587           588           589           590           591           592 
-14.730849077  34.818980069  12.513687063  20.676718814   1.697210255   6.350768196   7.923774609  31.987020396 
          593           594           595           596           597           598           599           600 
 17.584882678  30.253276115  21.687939822  46.567254172  35.595289297  78.583453690  48.228660730   5.103233940 
          601           602           603           604           605           606           607           608 
 35.137254172   8.501955964  17.748660730   7.643233940  47.837254172  77.614110939 -33.229393368 -44.951759070 
          609           610           611           612           613           614           615           616 
 11.444666811  -0.252621148  -3.725825716 -18.565138817  -7.426078051 -10.801615383  10.487727368 -16.495333189 
          617           618           619           620           621           622           623           624 
 -4.627065592 -45.515908429  16.606229641  23.911717950  -1.255333189  13.642302100 -10.428475673 -23.778368858 
          625           626           627           628           629           630           631           632 
 35.276105029 -12.085001090 -39.865035524  14.109438362 -29.018334423  17.708297809  -3.267029915   0.495241181 
          633           634           635           636           637           638           639           640 
  4.697082456 -29.159568960 -21.966011019 -24.278563204 -13.476895084 -54.624207122 -24.339415689 -45.793004606 
          641           642           643           644           645           646           647           648 
 16.662200854 -29.349758819  31.800431040  -1.827439591   4.508103463   9.042200854  -2.583177382  14.904862945 
          649           650           651           652           653           654           655           656 
-16.362581494  -9.669947196  -7.102817827 -29.130608106 -38.309585358 -17.823177382   4.744862945 -15.092581494 
          657           658           659           660           661           662           663           664 
-28.084947196  12.854325031  11.297725227 -28.912273320  37.695206075  10.116822618  -6.685137055  35.427725227 
          665           666           667           668           669           670           671           672 
-42.773431759  26.264809244  17.345167798  25.452200856  56.314513772 -29.650098426  18.644809244   3.375167798 
          673           674           675           676           677           678           679           680 
 -9.435931759 -19.455190756 -11.018165536   4.285534190  69.653934471  87.500151710  71.249877509  17.696816178 
          681           682           683           684           685           686           687           688 
-16.317189164 -19.572905285  -6.185678070  19.374287495  -2.498647151   4.273399103 -23.706280073 -12.164571952 
          689           690           691           692           693           694           695           696 
 19.374287495   0.463399103  30.521352849  -4.836973562  -3.219297677  14.143975428  11.975312206  16.480851727 
          697           698           699           700           701           702           703           704 
 10.951127207   8.412135557   0.394085133   9.337921911  15.536794765  15.849070245   7.361317707  34.039679950 
          705           706           707           708           709           710           711           712 
-22.428203433 -43.124523080 -28.000632718 -35.802408199 -37.651503224 -34.777160473 -29.022410350   9.763847322 
          713           714           715           716           717           718           719           720 
  2.457608779  13.319847322 -92.965061789  31.667608779   5.269352136  -2.810464750   9.488619796  21.854129914 
          721           722           723           724           725           726           727           728 
 17.915297960 -39.464201279  -6.739157982  19.314129914  -2.404702040 -32.860201279  -6.421657982  -3.545870086 
          729           730           731           732           733           734           735           736 
  2.675297960   5.812440132  54.784758822  17.287547954  -8.857149015   0.116044370   9.570157659  13.905460690 
          737           738           739           740           741           742           743           744 
 -3.537345925   2.506029706  -9.257930500 -24.462927242 -13.387232637  34.128070395  14.145263780  13.415306077 
          745           746           747           748           749           750           751           752 
 51.604679204   0.617915782  53.139907386  -9.635466186 -25.259476081   5.201986657  40.143316390  10.064422482 
          753           754           755           756           757           758           759           760 
-18.888323329  -6.228013343  -5.775439022  26.125388735  -8.613634897  -4.737262364  -7.803711791  65.654866717 
          761           762           763           764           765           766           767           768 
-12.267025192  -5.427319326 -12.134435420   3.630867612 -14.405472488  12.231948325 -11.019458233 -10.984756441 
          769           770           771           772           773           774           775           776 
 -4.102601466 -31.073258714 -15.158508592  -8.342051675 -13.113478465   3.517398534  40.046741286  28.021491408 
          777           778           779           780           781           782           783           784 
 24.493680729   3.341948325 -33.879458233 -31.304756441 -11.976601466 -36.999925381  -4.998508592   3.093105489 
          785           786           787           788           789           790           791           792 
-19.845843532  -0.102579754  27.804854131  -1.948029303   0.720613902  45.160741020 -12.860843532 -17.644069646 
          793           794           795           796           797           798           799           800 
 -7.722579754  13.291970697 -26.195843532  -1.795913088   9.389854131  18.371970697  18.500613902   2.242594221 
          801           802           803           804           805           806           807           808 
  7.280701441  10.132524665  -2.590948345 -21.650821227  32.257368107  10.979191332 -35.818396989 -48.117290897 
          809           810           811           812           813           814           815           816 
-74.891805993 -68.702977885 -50.179284698 -37.630713678 -29.980214885 -38.689674686 -30.140130198 -33.076154742 
          817           818           819           820           821           822           823           824 
 34.419091403  70.302342950  35.168367774  57.504952655  45.129231818  80.110817571  37.509231818  -7.075275625 
          825           826           827           828           829           830           831           832 
 -5.923968856   6.894724375   6.894724375   1.696031144  -8.345275625  43.769904383  17.968325311  -3.621674689 
          833           834           835           836           837           838           839           840 
 10.345802606 -43.403568125 -40.852396327 -31.330003994  -8.903353361 -19.795300104   1.547836247  -6.182697435 
          841           842           843           844           845           846           847           848 
-58.361345903 -26.392163753 -50.218984877 -54.692457014 -39.437253470 -16.911014095   2.018646639   8.765588785 
          849           850           851           852           853           854           855           856 
 19.327836247   9.057302565   8.432556915  21.849293066 -59.900822189   3.835666431 -10.005690364  -4.935563246 
          857           858           859           860           861           862           863           864 
 -7.075338344  -4.503735175 -53.550822189  -6.324333569  -9.107338344  -5.247494792   3.717852202 -21.435690364 
          865           866           867           868           869           870           871           872 
  7.764436754 -56.090822189 -31.595690364  -3.759890104  41.293366092  34.094137723  18.756617639  13.586055657 
          873           874           875           876           877           878           879           880 
 49.223300255  34.520032758  36.104971056  13.253284306  -9.907329390  -8.018921409  -2.323152124   8.239028458 
          881           882           883           884           885           886           887           888 
-10.974495760  54.766754387  38.621638163   0.219279404 -22.226292995 -16.745186903   7.457390316   7.506289508 
          889           890           891           892           893           894           895           896 
-27.370568044  -5.388491083 -21.928519995 -35.552631294 -33.969071856 -28.229759714  -8.421979133 -35.140337891 
          897           898           899           900           901           902           903           904 
-50.199797692  13.346983508  27.116609725  -9.389890962  -4.717991054  14.616983508 -12.253390275  -3.387812806 
          905           906           907           908           909           910           911           912 
 32.312927759  24.492008946  17.156983508  21.186271142   9.227023710 -16.222958804  -2.723699918  46.157868954 
          913           914           915           916           917           918           919           920 
 11.000823885  43.987646437  28.303889037  34.453612553   8.337913518  25.933376221  19.822919275  -1.106387447 
          921           922           923           924           925           926           927           928 
 -2.668753148  13.233376221 -31.353650001   7.301056993   3.973612553  16.127246852  21.700042888  15.553920728 
          929           930           931           932           933           934           935           936 
 37.711400122  -0.178220146   4.758107042  14.220864735  22.067802753   8.175047351  11.635189043   3.895559510 
          937           938           939           940           941           942           943           944 
 11.731611343  40.307740159  19.573759208  18.242200888  28.368362434  27.094794253  20.865513470  20.016324098 
          945           946           947           948           949           950           951           952 
 24.734655814  19.042317663  12.870822973 -30.988124272 -22.391730135  20.266639335  -6.096830135  -2.048245254 
          953           954           955           956           957           958           959           960 
 10.198335621   8.945104028   9.336079053 -20.748990673 -13.670829128  18.075602691 -20.080256149   6.495924991 
          961           962           963           964           965           966           967           968 
 12.520033545  16.486756879  23.662999479  26.851957270  38.184701077 -23.441373576 -21.155469305 -29.903237511 
          969           970           971           972           973           974           975           976 
 48.049892902   4.002302505 -21.504482096  -9.149416651  -2.474272631 -11.435264912 -10.967674109  -3.712731963 
          977           978           979           980           981           982           983           984 
 13.453515499  31.122981817  21.184902833  -7.385407673  19.083673514  14.147536965   3.420274293  -5.273226394 
          985           986           987           988           989           990           991           992 
-12.606148238  -8.462460576  18.147445935  -0.024495355  22.275332729  -6.703879930 -17.463041407 -16.037960493 
          993           994           995           996           997           998           999          1000 
-17.985389555 -23.769824428 -18.155749251 -10.295118752 -34.608813110 -32.488030202 -28.883966151 -12.234193118 
 [ reached 'max' / getOption("max.print") -- omitted 4151 entries ]
plot(pomnig.lm)

###Post-hoc comparisons

#post-hoc comparisons
pomnig.emm <- emmeans(pomnig.lm, ~ begin_date_year*age_group)
pairs(pomnig.emm, simple = "age_group")
begin_date_year = 1992:
 contrast                  estimate   SE   df t.ratio p.value
 age_group11 - age_group10     10.1 8.63 5124   1.173  0.9910
 age_group11 - age_group9      24.7 8.07 5124   3.060  0.0923
 age_group11 - age_group8      36.9 7.73 5124   4.766  0.0001
 age_group11 - age_group7      52.2 7.55 5124   6.915  <.0001
 age_group11 - age_group6      67.6 7.47 5124   9.058  <.0001
 age_group11 - age_group5      86.0 7.43 5124  11.568  <.0001
 age_group11 - age_group4     104.8 7.42 5124  14.127  <.0001
 age_group11 - age_group3     132.8 7.41 5124  17.917  <.0001
 age_group11 - age_group2     170.4 7.42 5124  22.959  <.0001
 age_group11 - age_group1     215.1 7.56 5124  28.449  <.0001
 age_group11 - age_group0     250.2 8.93 5124  28.024  <.0001
 age_group10 - age_group9      14.6 5.66 5124   2.571  0.2963
 age_group10 - age_group8      26.7 5.18 5124   5.164  <.0001
 age_group10 - age_group7      42.1 4.90 5124   8.587  <.0001
 age_group10 - age_group6      57.5 4.77 5124  12.050  <.0001
 age_group10 - age_group5      75.9 4.72 5124  16.070  <.0001
 age_group10 - age_group4      94.7 4.69 5124  20.170  <.0001
 age_group10 - age_group3     122.7 4.68 5124  26.187  <.0001
 age_group10 - age_group2     160.3 4.70 5124  34.088  <.0001
 age_group10 - age_group1     205.0 4.92 5124  41.680  <.0001
 age_group10 - age_group0     240.1 6.83 5124  35.158  <.0001
 age_group9 - age_group8       12.2 4.17 5124   2.919  0.1344
 age_group9 - age_group7       27.5 3.82 5124   7.204  <.0001
 age_group9 - age_group6       43.0 3.66 5124  11.749  <.0001
 age_group9 - age_group5       61.3 3.59 5124  17.089  <.0001
 age_group9 - age_group4       80.1 3.55 5124  22.560  <.0001
 age_group9 - age_group3      108.1 3.54 5124  30.545  <.0001
 age_group9 - age_group2      145.7 3.56 5124  40.895  <.0001
 age_group9 - age_group1      190.5 3.85 5124  49.489  <.0001
 age_group9 - age_group0      225.5 6.10 5124  36.942  <.0001
 age_group8 - age_group7       15.4 3.06 5124   5.023  <.0001
 age_group8 - age_group6       30.8 2.85 5124  10.810  <.0001
 age_group8 - age_group5       49.2 2.76 5124  17.810  <.0001
 age_group8 - age_group4       67.9 2.71 5124  25.068  <.0001
 age_group8 - age_group3       95.9 2.69 5124  35.603  <.0001
 age_group8 - age_group2      133.6 2.73 5124  48.995  <.0001
 age_group8 - age_group1      178.3 3.09 5124  57.754  <.0001
 age_group8 - age_group0      213.3 5.65 5124  37.733  <.0001
 age_group7 - age_group6       15.4 2.31 5124   6.695  <.0001
 age_group7 - age_group5       33.8 2.20 5124  15.398  <.0001
 age_group7 - age_group4       52.6 2.13 5124  24.665  <.0001
 age_group7 - age_group3       80.6 2.11 5124  38.155  <.0001
 age_group7 - age_group2      118.2 2.15 5124  54.943  <.0001
 age_group7 - age_group1      162.9 2.59 5124  62.797  <.0001
 age_group7 - age_group0      198.0 5.40 5124  36.655  <.0001
 age_group6 - age_group5       18.4 1.89 5124   9.694  <.0001
 age_group6 - age_group4       37.1 1.82 5124  20.412  <.0001
 age_group6 - age_group3       65.1 1.80 5124  36.277  <.0001
 age_group6 - age_group2      102.8 1.84 5124  55.813  <.0001
 age_group6 - age_group1      147.5 2.34 5124  62.975  <.0001
 age_group6 - age_group0      182.5 5.28 5124  34.553  <.0001
 age_group5 - age_group4       18.8 1.67 5124  11.215  <.0001
 age_group5 - age_group3       46.8 1.65 5124  28.394  <.0001
 age_group5 - age_group2       84.4 1.70 5124  49.756  <.0001
 age_group5 - age_group1      129.1 2.23 5124  57.929  <.0001
 age_group5 - age_group0      164.2 5.23 5124  31.376  <.0001
 age_group4 - age_group3       28.0 1.56 5124  17.964  <.0001
 age_group4 - age_group2       65.6 1.61 5124  40.763  <.0001
 age_group4 - age_group1      110.4 2.16 5124  51.051  <.0001
 age_group4 - age_group0      145.4 5.20 5124  27.956  <.0001
 age_group3 - age_group2       37.6 1.58 5124  23.792  <.0001
 age_group3 - age_group1       82.4 2.14 5124  38.515  <.0001
 age_group3 - age_group0      117.4 5.19 5124  22.622  <.0001
 age_group2 - age_group1       44.7 2.17 5124  20.600  <.0001
 age_group2 - age_group0       79.8 5.20 5124  15.339  <.0001
 age_group1 - age_group0       35.1 5.37 5124   6.521  <.0001

P value adjustment: tukey method for comparing a family of 12 estimates 
test(pairs(pomnig.emm, by = "begin_date_year"), by = NULL, adjust = "mvt")
 contrast                  begin_date_year estimate   SE   df t.ratio p.value
 age_group11 - age_group10            1992     10.1 8.63 5124   1.173  0.9873
 age_group11 - age_group9             1992     24.7 8.07 5124   3.060  0.0730
 age_group11 - age_group8             1992     36.9 7.73 5124   4.766  0.0001
 age_group11 - age_group7             1992     52.2 7.55 5124   6.915  <.0001
 age_group11 - age_group6             1992     67.6 7.47 5124   9.058  <.0001
 age_group11 - age_group5             1992     86.0 7.43 5124  11.568  <.0001
 age_group11 - age_group4             1992    104.8 7.42 5124  14.127  <.0001
 age_group11 - age_group3             1992    132.8 7.41 5124  17.917  <.0001
 age_group11 - age_group2             1992    170.4 7.42 5124  22.959  <.0001
 age_group11 - age_group1             1992    215.1 7.56 5124  28.449  <.0001
 age_group11 - age_group0             1992    250.2 8.93 5124  28.024  <.0001
 age_group10 - age_group9             1992     14.6 5.66 5124   2.571  0.2466
 age_group10 - age_group8             1992     26.7 5.18 5124   5.164  <.0001
 age_group10 - age_group7             1992     42.1 4.90 5124   8.587  <.0001
 age_group10 - age_group6             1992     57.5 4.77 5124  12.050  <.0001
 age_group10 - age_group5             1992     75.9 4.72 5124  16.070  <.0001
 age_group10 - age_group4             1992     94.7 4.69 5124  20.170  <.0001
 age_group10 - age_group3             1992    122.7 4.68 5124  26.187  <.0001
 age_group10 - age_group2             1992    160.3 4.70 5124  34.088  <.0001
 age_group10 - age_group1             1992    205.0 4.92 5124  41.680  <.0001
 age_group10 - age_group0             1992    240.1 6.83 5124  35.158  <.0001
 age_group9 - age_group8              1992     12.2 4.17 5124   2.919  0.1064
 age_group9 - age_group7              1992     27.5 3.82 5124   7.204  <.0001
 age_group9 - age_group6              1992     43.0 3.66 5124  11.749  <.0001
 age_group9 - age_group5              1992     61.3 3.59 5124  17.089  <.0001
 age_group9 - age_group4              1992     80.1 3.55 5124  22.560  <.0001
 age_group9 - age_group3              1992    108.1 3.54 5124  30.545  <.0001
 age_group9 - age_group2              1992    145.7 3.56 5124  40.895  <.0001
 age_group9 - age_group1              1992    190.5 3.85 5124  49.489  <.0001
 age_group9 - age_group0              1992    225.5 6.10 5124  36.942  <.0001
 age_group8 - age_group7              1992     15.4 3.06 5124   5.023  <.0001
 age_group8 - age_group6              1992     30.8 2.85 5124  10.810  <.0001
 age_group8 - age_group5              1992     49.2 2.76 5124  17.810  <.0001
 age_group8 - age_group4              1992     67.9 2.71 5124  25.068  <.0001
 age_group8 - age_group3              1992     95.9 2.69 5124  35.603  <.0001
 age_group8 - age_group2              1992    133.6 2.73 5124  48.995  <.0001
 age_group8 - age_group1              1992    178.3 3.09 5124  57.754  <.0001
 age_group8 - age_group0              1992    213.3 5.65 5124  37.733  <.0001
 age_group7 - age_group6              1992     15.4 2.31 5124   6.695  <.0001
 age_group7 - age_group5              1992     33.8 2.20 5124  15.398  <.0001
 age_group7 - age_group4              1992     52.6 2.13 5124  24.665  <.0001
 age_group7 - age_group3              1992     80.6 2.11 5124  38.155  <.0001
 age_group7 - age_group2              1992    118.2 2.15 5124  54.943  <.0001
 age_group7 - age_group1              1992    162.9 2.59 5124  62.797  <.0001
 age_group7 - age_group0              1992    198.0 5.40 5124  36.655  <.0001
 age_group6 - age_group5              1992     18.4 1.89 5124   9.694  <.0001
 age_group6 - age_group4              1992     37.1 1.82 5124  20.412  <.0001
 age_group6 - age_group3              1992     65.1 1.80 5124  36.277  <.0001
 age_group6 - age_group2              1992    102.8 1.84 5124  55.813  <.0001
 age_group6 - age_group1              1992    147.5 2.34 5124  62.975  <.0001
 age_group6 - age_group0              1992    182.5 5.28 5124  34.553  <.0001
 age_group5 - age_group4              1992     18.8 1.67 5124  11.215  <.0001
 age_group5 - age_group3              1992     46.8 1.65 5124  28.394  <.0001
 age_group5 - age_group2              1992     84.4 1.70 5124  49.756  <.0001
 age_group5 - age_group1              1992    129.1 2.23 5124  57.929  <.0001
 age_group5 - age_group0              1992    164.2 5.23 5124  31.376  <.0001
 age_group4 - age_group3              1992     28.0 1.56 5124  17.964  <.0001
 age_group4 - age_group2              1992     65.6 1.61 5124  40.763  <.0001
 age_group4 - age_group1              1992    110.4 2.16 5124  51.051  <.0001
 age_group4 - age_group0              1992    145.4 5.20 5124  27.956  <.0001
 age_group3 - age_group2              1992     37.6 1.58 5124  23.792  <.0001
 age_group3 - age_group1              1992     82.4 2.14 5124  38.515  <.0001
 age_group3 - age_group0              1992    117.4 5.19 5124  22.622  <.0001
 age_group2 - age_group1              1992     44.7 2.17 5124  20.600  <.0001
 age_group2 - age_group0              1992     79.8 5.20 5124  15.339  <.0001
 age_group1 - age_group0              1992     35.1 5.37 5124   6.521  <.0001

P value adjustment: mvt method for 66 tests 
#export tables
# interpret(eta_squared(pomnig.lm), rules = "cohen1992") %>%
#   write.csv(file = "Outputs/Tables/pomnig_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
pomnig.slopes <- emtrends(pomnig.lm, ~age_group, var = "begin_date_year")
# Compare estimated slopes to 0
pomnig.slope.contrasts <- test(pomnig.slopes) %>% 
  mutate(Species = "Black Crappie") %>% 
  rename(Age = age_group)

pomnig.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/pomnig_emmeans.csv")

Plot raw data

(pomnig.length.year.plot <- ggplot(data = pomnig %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)
`geom_smooth()` using formula = 'y ~ x'

Marginal Effects

result <- predict_response(pomnig.lm, c("begin_date_year", "age_group"))

# plot(result)
# test_predictions(result) %>% 
#   write.csv(file = "Outputs/Tables/pomnig_pairwise_length_time_slopes.csv", row.names = F)

(pomnig.marginal.plot <- ggpredict(pomnig.lm, terms = c("begin_date_year", "age_group")) %>%  
    plot()+
    #stat_poly_eq(use_label("eq"))+
    stat_regline_equation()+
    stat_poly_line()+
    # annotate(geom = "text", label = "y = 1000 - 0.35x", x = 2000, y = 350)+
    # annotate(geom = "text", label = "y = 21 + 0.093x", x = 2000, y = 212)+
    # annotate(geom = "text", label = "y = -64 + 0.13x", x = 2000, y = 199)+
    # annotate(geom = "text", label = "y = 230 - 0.028x", x = 2000, y = 182)+
    # annotate(geom = "text", label = "y = 610 - 0.23x", x = 2000, y = 160)+
    # annotate(geom = "text", label = "y = 920 - 0.39x", x = 2000, y = 137)+
    # annotate(geom = "text", label = "y = 1200 - 0.55x", x = 2000, y = 110)+
    # annotate(geom = "text", label = "y = 1700 - 0.83x", x = 2000, y = 80)+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(title = NULL,
         y = "Mean Length-at-Age (mm)",
         x = "Year")+
    guides(fill = guide_legend(title = "Age", reverse = T), color = guide_legend(title = "Age", reverse = T))+
    theme_bw()
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/pomnig_marginal_effects_plot.tiff", 
       pomnig.marginal.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

Bluegill

Model

#filter data for only Black Crappie, Pomooxis nigromaculatus 
lepmac <- all.grow.merge %>% filter(species == "bluegill") %>% 
  filter(!age_group %in% c(12, 13, 18), #match age groups in BRTs
         !is.na(age_group), !is.na(begin_date_year), !is.na(length_mean_mm),
         !is.na(log_max_depth), !is.na(logarea))

#linear model
lepmac.lm <- lm(length_mean_mm ~ begin_date_year*age_group + log_max_depth + logarea + doy, data = lepmac)
summary(lepmac.lm)

Call:
lm(formula = length_mean_mm ~ begin_date_year * age_group + log_max_depth + 
    logarea + doy, data = lepmac)

Residuals:
    Min      1Q  Median      3Q     Max 
-81.369 -17.186  -0.893  15.702 164.623 

Coefficients:
                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                  8.224e+02  3.712e+02   2.215 0.026750 *  
begin_date_year             -4.002e-01  1.870e-01  -2.140 0.032413 *  
age_group1                   4.992e+02  3.831e+02   1.303 0.192635    
age_group2                   3.722e+01  3.780e+02   0.098 0.921559    
age_group3                  -1.834e+02  3.768e+02  -0.487 0.626352    
age_group4                  -5.010e+02  3.771e+02  -1.328 0.184045    
age_group5                  -8.804e+02  3.783e+02  -2.327 0.019975 *  
age_group6                  -1.132e+03  3.801e+02  -2.978 0.002908 ** 
age_group7                  -1.040e+03  3.841e+02  -2.708 0.006776 ** 
age_group8                  -9.559e+02  3.958e+02  -2.415 0.015749 *  
age_group9                  -7.718e+02  4.208e+02  -1.834 0.066630 .  
age_group10                 -6.709e+02  4.568e+02  -1.469 0.141955    
age_group11                 -3.595e+02  5.498e+02  -0.654 0.513266    
log_max_depth               -1.599e-01  3.676e-01  -0.435 0.663612    
logarea                      1.030e+00  1.937e-01   5.319 1.06e-07 ***
doy                          1.021e-01  4.542e-03  22.478  < 2e-16 ***
begin_date_year:age_group1  -2.400e-01  1.930e-01  -1.244 0.213673    
begin_date_year:age_group2   7.473e-03  1.904e-01   0.039 0.968698    
begin_date_year:age_group3   1.325e-01  1.898e-01   0.698 0.485283    
begin_date_year:age_group4   3.043e-01  1.900e-01   1.601 0.109312    
begin_date_year:age_group5   5.051e-01  1.906e-01   2.650 0.008066 ** 
begin_date_year:age_group6   6.394e-01  1.915e-01   3.339 0.000844 ***
begin_date_year:age_group7   5.995e-01  1.935e-01   3.098 0.001952 ** 
begin_date_year:age_group8   5.627e-01  1.993e-01   2.823 0.004766 ** 
begin_date_year:age_group9   4.761e-01  2.117e-01   2.249 0.024560 *  
begin_date_year:age_group10  4.299e-01  2.297e-01   1.872 0.061282 .  
begin_date_year:age_group11  2.797e-01  2.761e-01   1.013 0.311052    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 24.47 on 11201 degrees of freedom
  (124 observations deleted due to missingness)
Multiple R-squared:  0.7607,    Adjusted R-squared:  0.7601 
F-statistic:  1369 on 26 and 11201 DF,  p-value: < 2.2e-16
#calculate and interpret effect sizes
eta_squared(lepmac.lm)
          begin_date_year                 age_group             log_max_depth                   logarea 
             4.644139e-04              7.395302e-01              1.945205e-05              5.852724e-04 
                      doy begin_date_year:age_group 
             1.228110e-02              7.792847e-03 
#interpret(eta_squared(lepmac.lm), rules = "cohen1992")

#calculate AIC score
AIC(lepmac.lm)
[1] 103698.4
#examine model fit
testDispersion(lepmac.lm)

    DHARMa nonparametric dispersion test via sd of residuals fitted vs. simulated

data:  simulationOutput
dispersion = 0.99795, p-value = 0.904
alternative hypothesis: two.sided

simulation.output <- simulateResiduals(fittedModel = lepmac.lm)

residuals(lepmac.lm)
           1            2            3            4            5            6            7            8            9 
 22.23397044  40.32784460  42.50544812  36.51041643  28.56432731  15.51020391   9.99081360  19.68051353   0.14791951 
          10           11           12           13           14           15           16           17           18 
 12.57062876  29.55689469  18.62575046  16.95882559  16.96210164   0.04956499  -8.58640250 -30.64438335  -3.31474103 
          19           20           21           22           23           24           25           26           27 
 -8.15455419 -31.64744494   2.51041165 -11.65511533  -4.76545516   2.34849855  -2.34941320 -25.05065716  -3.03152587 
          28           29           30           31           32           33           34           35           36 
-22.19299146 -39.08588181 -54.48091604  21.81171420   6.70882268  -2.94360633  -5.67920069  -2.64018284 -51.37230899 
          37           38           39           40           41           42           43           44           45 
  4.06672101  -7.52257931  -7.47867097 -10.67531249  26.61581981  24.48515148   1.93332924  -1.37051198  -4.87160110 
          46           47           48           49           50           51           52           53           54 
  7.47427550  -3.12511481 -16.29541488  -5.44175360  25.27194036  16.12804981 -14.01052194   3.83383869   1.19173701 
          55           56           57           58           59           60           61           62           63 
-15.29083031 -17.64075115  25.60778551  27.54978047  25.08381818   3.07404549   5.96255157  -6.91886316 -10.59303052 
          64           65           66           67           68           69           70           71           72 
-11.10932258  -0.21554782   1.59067742  -0.94932258 -21.44958952 -38.12689718 -26.27437901 -49.23581112   6.77051932 
          73           74           75           76           77           78           79           80           81 
 -8.69791279 -22.86243839  40.40889947  16.82841764 -21.95327993  26.27370592   9.32147782 -41.46641390  29.87391453 
          82           83           84           85           86           87           88           89           90 
 20.15866218  18.21013000  11.74540330   2.04936908  33.94723361  28.37013000  -2.30646752  -5.60102218 -13.98823208 
          91           92           93           94           95           96           97           98           99 
-11.92063092   8.98719473 -15.22855862 -28.23511895 -33.08854949 -30.48471072 -14.19880819 -15.50781310 -13.91821162 
         100          101          102          103          104          105          106          107          108 
-33.74639884  10.90818690  19.51391908  10.90818690   0.52052806   0.24531343   4.30787645  18.28899290  24.46154139 
         109          110          111          112          113          114          115          116          117 
-17.32741694 -34.83870976 -27.05000710  20.78616820  -9.58817825 -11.94668657 -21.20757809  -1.44256527  16.99057759 
         118          119          120          121          122          123          124          125          126 
 15.18015908  18.53768138  22.68766651  34.23647839   9.40062018  19.04676806  12.61101471  29.99978772  45.55102384 
         127          128          129          130          131          132          133          134          135 
 46.93312105  35.39102384 -32.84743402  31.16013697 -28.81617168 -25.26310620 -32.22634346 -11.17368772 -63.74117168 
         136          137          138          139          140          141          142          143          144 
-78.22856569  30.23882832  19.71606046  -9.90368772 -11.15270084 -21.26146557 -41.31410069 -13.18486830  -9.38265615 
         145          146          147          148          149          150          151          152          153 
  8.36441640  12.36366304  10.91130685   4.72006289  10.51317243 -25.88486830   5.43317243 -22.49704268 -31.66784159 
         154          155          156          157          158          159          160          161          162 
-39.01758909  -9.47482065 -21.96414435  27.71674399  42.53510342  14.59255659  24.81167718  40.60491658 -18.37651742 
         163          164          165          166          167          168          169          170          171 
 47.56957551  27.80281490   4.30617700  30.64324988  -4.46364678   1.28343082  -1.16730307  13.66884172   4.06484052 
         172          173          174          175          176          177          178          179          180 
 19.72088858  18.67997487   8.94249304  31.57406093   4.70953532  19.65755963  23.85510383  26.25610197  28.22693615 
         181          182          183          184          185          186          187          188          189 
  8.19177050  21.10554642  40.24960282  35.05160144  36.75017658 -20.71404737  21.07319907  29.93507023  40.92693615 
         190          191          192          193          194          195          196          197          198 
 34.54360144  34.21017658   4.38177050  29.07360282  40.80893478  -0.41063293  -6.83587093 -23.10973841 -20.19667639 
         199          200          201          202          203          204          205          206          207 
 16.35733700  30.22998926  -2.74929544  15.93400367  22.24053472  34.22923590  16.84896909  59.18598926  36.61207863 
         208          209          210          211          212          213          214          215          216 
 20.05844844   2.77139063  -5.58496234   1.89638265   2.78200058   1.56786124  -8.41296810 -15.22749701   4.35889063 
         217          218          219          220          221          222          223          224          225 
-10.02996234   4.36186124   0.22303190 -15.22749701  18.19660918   0.80289063   1.49772997  -2.08295068  -2.29799942 
         226          227          228          229          230          231          232          233          234 
  4.99686124  -1.47030144 -11.26821823   1.81889063   5.63186124  -4.85696810   4.22660918   1.92506587 -10.53719745 
         235          236          237          238          239          240          241          242          243 
 -2.14462938  21.02159084  22.16348459  19.82235924 -16.98382302  22.37515126   7.63035924 -15.71382302  45.22235924 
         244          245          246          247          248          249          250          251          252 
 37.60235924 -11.90382302  -4.01444642  -2.50057128  -1.19876719  -5.20340929   0.51282766  -7.64829045  -1.93562044 
         253          254          255          256          257          258          259          260          261 
 -8.28276691   2.19041987   6.38942872  18.77486917 -12.40007596  -7.74217234 -18.14695712  -1.93562044  10.62276206 
         262          263          264          265          266          267          268          269          270 
  7.34486917   3.01970955   9.49437956   1.57996407   0.45873209  -8.23582765  -7.37898938 -29.62215068 -32.75293786 
         271          272          273          274          275          276          277          278          279 
 -6.58482765 -13.54756081  -5.40748401 -13.06793786 -28.77836840 -10.95866122 -18.27821974 -15.09755427   2.47399460 
         280          281          282          283          284          285          286          287          288 
 19.43244452   4.58210255   6.77643967  -2.09206162   1.73689292  -3.67122708   1.70264868  38.84633949 -15.98045785 
         289          290          291          292          293          294          295          296          297 
 26.08664868  47.73633949 -16.56554496 -10.35665607 -16.61545785   0.68664868  43.92633949   7.65989242  -4.66557903 
         298          299          300          301          302          303          304          305          306 
  1.78965051   4.38725898  11.26936610   2.95442097   1.36631717 -25.45895095 -20.27444581 -12.19087309 -23.29043569 
         307          308          309          310          311          312          313          314          315 
  5.78964204   5.18554733 -10.35916432   1.13052649 -17.03905035 -25.34917570 -17.23080734 -18.38739284 -20.30850840 
         316          317          318          319          320          321          322          323          324 
-36.18117246 -42.12120739 -22.27266961 -20.63345466 -20.10226598 -11.59495595 -11.08389447 -19.32883879  -9.45567387 
         325          326          327          328          329          330          331          332          333 
-26.29766444  -6.34001322  -1.80819905  13.46876039  10.66574257  13.34363896  -3.28108774   6.66064388  31.62074257 
         334          335          336          337          338          339          340          341          342 
 26.04363896  23.38891226  -6.03935612  -9.78766444 -23.16751322  11.78988613  -3.05618669 -18.85819005 -23.76497259 
         343          344          345          346          347          348          349          350          351 
-14.92571714 -12.29343306   1.15228766   0.50522214   8.51739505   2.81756331   9.38939295 -24.59549145  12.89161586 
         352          353          354          355          356          357          358          359          360 
 -2.46394039   4.40284188   7.81161586  28.45512541  14.30618918  25.16007349   2.80817738  18.58450855  22.48717141 
         361          362          363          364          365          366          367          368          369 
 42.84845874  14.47552251  -1.50992651 -11.19582274 -19.60362856 -23.50358327 -37.06112402   1.39698623  -8.67069019 
         370          371          372          373          374          375          376          377          378 
-30.70024994 -25.98668006 -25.88223962 -14.61969348 -18.77312402  17.38430652   6.11887598  17.38430652 -11.70606046 
         379          380          381          382          383          384          385          386          387 
  8.53043691   8.94965513   7.66204333   3.32411362  -2.31817115 -16.58683448 -16.58398094 -10.37845198  39.20161362 
         388          389          390          391          392          393          394          395          396 
  6.27316552 -13.47519638  -8.25891760 -15.45845198   3.73316552  -6.42398094  28.06510404  24.57364109  19.27549780 
         397          398          399          400          401          402          403          404          405 
 25.24847486  14.09070700  13.30108085   5.13800917   7.04300917  20.46175547  -9.54148383  -4.60888959 -25.76544778 
         406          407          408          409          410          411          412          413          414 
-52.43587679   8.32713984  -6.59019496 -11.82522919  -9.91879915 -13.52978328 -10.50457537 -23.68081933 -12.37697632 
         415          416          417          418          419          420          421          422          423 
 -2.32844190 -36.40866559 -22.53697632 -40.85177523   4.17149128  -7.73175495 -14.13631508 -20.57603603 -19.54620111 
         424          425          426          427          428          429          430          431          432 
-25.78804075 -32.43795810  -9.79850872 -25.72342161 -18.27620111  -7.28232646 -19.31462477 -23.54795810  37.46233711 
         433          434          435          436          437          438          439          440          441 
 23.21331923  31.97033285  40.87690846  31.40863806  27.12772851  19.46485077   2.20271677  15.43826328  28.67495431 
         442          443          444          445          446          447          448          449          450 
 31.03537323  21.69075731  17.06531312   8.51895144  -5.13542265  -9.01561657   9.56451328  14.01731312  -5.20561657 
         451          452          453          454          455          456          457          458          459 
-33.57931355 -46.99979538  -9.25344670 -16.74078123 -25.11467256 -22.78431355 -31.33646204 -23.44459112 -25.19775309 
         460          461          462          463          464          465          466          467          468 
-33.74472878 -38.94866730 -44.65361162 -28.49931355 -44.45979538   3.51272828   9.68682662   5.31668676  -7.41643135 
         469          470          471          472          473          474          475          476          477 
-14.21201387 -29.83090462 -32.70018155 -50.17484959 -11.05360779  -8.31922127 -21.47610567 -35.55099836 -31.20582214 
         478          479          480          481          482          483          484          485          486 
-28.18153615 -25.14520739 -25.49586541   1.61066211 -21.22419380 -25.14708571 -24.34809075 -18.85538637 -16.31567422 
         487          488          489          490          491          492          493          494          495 
 -2.88231965 -18.30373438 -15.62790174  -9.12895259   4.07404195  11.29259920  13.07524351  14.62102370   8.20016993 
         496          497          498          499          500          501          502          503          504 
 -7.57731918 -16.67669646 -11.13331918  19.70102370  -4.90161865  -0.13634531   1.65776258   2.08539809  -3.24839102 
         505          506          507          508          509          510          511          512          513 
-11.81559470  43.56360880  22.70511988  21.72961200  12.55585622   8.77273281   5.15834251  28.72939768  21.50864998 
         514          515          516          517          518          519          520          521          522 
 -2.16198179  16.00975454   1.24624083   3.03413485   5.66268595 -10.59320460   1.60868322  33.10270602  34.26171751 
         523          524          525          526          527          528          529          530          531 
 30.89486300   8.69277965  15.16432338   0.12879229  12.46141049 -47.84513700   4.98127744  35.78611298  13.89432338 
         532          533          534          535          536          537          538          539          540 
  7.52127744 -31.56661583  11.35432338 -15.24845213 -16.66915419 -29.22153328 -47.68420499  15.65180005  21.14979501 
         541          542          543          544          545          546          547          548          549 
 20.84283272  23.38639336  -1.28153328 -28.63420499  32.83656611  12.47098402  43.07139336  31.56656611  20.80181805 
         550          551          552          553          554          555          556          557          558 
 35.19699165  44.76915769  50.84857422  46.50807936  39.77498542   8.48803444   7.93642844  63.44647254   7.83432676 
         559          560          561          562          563          564          565          566          567 
-16.12077428 -15.77531679 -24.12509818 -14.30022771 -15.09556242 -20.76298728 -20.10824828 -28.84574789 -42.43745757 
         568          569          570          571          572          573          574          575          576 
 22.71250496   6.33229258  -0.30063045 -14.03044362 -22.02933436 -35.56661130   3.85639498 -31.99952994 -24.60754365 
         577          578          579          580          581          582          583          584          585 
 -9.81574815   5.21444663 -10.53423068 -27.19732098 -38.03137470 -45.25599316 -42.94962353 -20.14984309 -13.83477088 
         586          587          588          589          590          591          592          593          594 
 -2.54933196  -4.23190894  -5.30717999   4.11980742  -1.93175000 -26.56036026 -44.20436164 -38.71532496 -23.00801045 
         595          596          597          598          599          600          601          602          603 
-39.92054710 -12.36425679 -22.01770605  -8.42003681   4.44221911 -25.68972449 -22.31522586 -20.00886501 -45.84404135 
         604          605          606          607          608          609          610          611          612 
-14.18444756 -29.49972449   5.25825635 -31.20244756  10.38727414 -10.39315072   6.44506017  -4.19826542 -19.68030175 
         613          614          615          616          617          618          619          620          621 
-28.80694427 -19.88318777 -33.97181313 -20.07494477 -30.84295607 -39.97756634 -48.26264464 -43.11413543 -42.71171653 
         622          623          624          625          626          627          628          629          630 
-46.81841985 -33.65546286 -44.57891212 -14.15453991 -27.95905896 -40.02194971 -55.33722664  -3.92368775 -15.79109352 
         631          632          633          634          635          636          637          638          639 
 31.05767987  17.74249204  -1.60209132  -6.03138092 -12.17691201 -21.68164699   2.00297892   5.37557315  -8.31232013 
         640          641          642          643          644          645          646          647          648 
 -9.35084130  -3.33299828   0.57767987  -7.31884130 -24.77959132   0.80915870 -37.47959132  21.90861908  -3.84974233 
         649          650          651          652          653          654          655          656          657 
  0.03224326  -8.83784343 -20.66186629 -24.94811025 -21.26304144 -21.41807567 -27.06109007 -41.85784343 -14.49182348 
         658          659          660          661          662          663          664          665          666 
-34.96685771   0.03012789 -16.67162547 -11.35064833 -14.36689229  10.90817652 -18.88019104 -27.90987211 -11.37995881 
         667          668          669          670          671          672          673          674          675 
-15.16064833 -27.06689229 -48.79956863 -29.45103479  -2.86034488 -14.75685714 -23.15916318 -30.01705373 -19.33720931 
         676          677          678          679          680          681          682          683          684 
-21.51216164  -5.85741742   0.13845917   0.65156887  21.78440149  18.05372979  11.10043416  34.38732814  21.18916756 
         685          686          687          688          689          690          691          692          693 
 14.65775283  18.60358546 -14.90285391  29.56839645  -1.94035069  -0.62403993  -2.76893184  40.31399481 -11.13915025 
         694          695          696          697          698          699          700          701          702 
 15.65946778  15.89104775  23.75202490  -9.65748359 -16.71285115 -11.34919888  -8.47053222   2.55604775  21.34678881 
         703          704          705          706          707          708          709          710          711 
 -4.77207429 -18.68258847 -24.88703024 -30.03242060  -6.02703450 -14.92175588 -19.55531280  -2.23573767  -6.35996162 
         712          713          714          715          716          717          718          719          720 
-13.74749827 -14.13120795   4.02875457 -30.25913617  46.38258552  16.07716066  29.73293670   3.26313273 -21.24243801 
         721          722          723          724          725          726          727          728          729 
-33.53623785 -24.11544878   3.23520989 -17.47444616 -30.82947938 -29.32853322 -14.24377801 -13.70528138 -13.08330423 
         730          731          732          733          734          735          736          737          738 
-24.44531388 -27.62220424 -30.56354150 -21.73625287 -14.03586338 -17.87702909 -25.97327305  -0.06609723 -11.72183634 
         739          740          741          742          743          744          745          746          747 
-25.33275991 -34.91491745 -34.74081033 -14.60920707 -15.72765483 -17.76776065 -28.79446198 -16.76572314  -4.88966459 
         748          749          750          751          752          753          754          755          756 
-11.09881997 -12.25539693  -9.32397916   3.88961143  13.59649802  15.59056591  -0.79645969 -20.39224940  -9.63449730 
         757          758          759          760          761          762          763          764          765 
-24.46274471  -4.88063760 -10.07831000  11.94107089  50.48420278  27.49487279  31.56172632  29.59051089  76.97441727 
         766          767          768          769          770          771          772          773          774 
 26.38732089  17.46420278  11.23887279  -4.20035319 -30.81274471 -15.25524471 -24.24813760   0.42807936   8.58771634 
         775          776          777          778          779          780          781          782          783 
  8.66732423  12.51488831  -4.61175794 -18.07753305 -14.81192064  38.82203117  19.94157539  -5.37753305   0.93753916 
         784          785          786          787          788          789          790          791          792 
 -6.82702192  35.96776097  39.46813592  51.44981890  34.77018343  27.92307982  16.37835312  19.04653592  32.58109431 
         793          794          795          796          797          798          799          800          801 
 -6.63822358 -13.75466327 -18.69060693 -15.35829426 -21.15454618 -34.02188273 -39.74467579 -15.16777524  43.55524677 
         802          803          804          805          806          807          808          809          810 
 36.84382564  29.42513803  15.68766923   7.99389895  32.12524677  16.88389895  29.58524677  35.16100256  14.34389895 
         811          812          813          814          815          816          817          818          819 
 13.64926222  12.22858011 -10.61931161   1.76865037  21.39591697  34.52377985  40.24726884  33.64347973  24.77389510 
         820          821          822          823          824          825          826          827          828 
 28.18611016  21.26821575 -15.71121684  16.27221784  34.45932477  24.70259161  32.96966841  20.73721456 -15.28788351 
         829          830          831          832          833          834          835          836          837 
 26.43221784  19.62259161   6.93178402  40.14821784   4.39466841  18.36711649   3.28999562   9.69432477  17.71759161 
         838          839          840          841          842          843          844          845          846 
 22.17466841  19.67149121 -14.24851111  19.71977921  21.99798615  23.52219704  -1.03491140 -12.07650586 -30.00106694 
         847          848          849          850          851          852          853          854          855 
 -9.45864392  15.79853435   7.00367132  -0.85422079  35.71419704  17.16842193   3.16349414  20.97367132   1.68577921 
         856          857          858          859          860          861          862          863          864 
 27.54603435   2.43167132   1.53900476  19.09664173  21.57699524   9.96095656  18.80883412  14.86805901  57.79762323 
         865          866          867          868          869          870          871          872          873 
 34.68383412   8.73567142  -1.53123706 -11.93069221 -18.81516008 -29.85537781  -4.46350860   2.95990571   0.50706472 
         874          875          876          877          878          879          880          881          882 
 10.58685379   3.30562435  -0.31018158 -22.23537781 -30.14262948 -49.61809429  19.56162435  27.18162435   6.19636682 
         883          884          885          886          887          888          889          890          891 
 -9.78692213   5.90531494  13.52979530   7.64791807   2.75604393  57.69626505  45.92803861  42.44727559  58.52593694 
         892          893          894          895          896          897          898          899          900 
 39.14741553 -15.85936166  20.59681761  11.12835103  14.41367446   6.88794938   7.06712214   2.82170741 -10.22889933 
         901          902          903          904          905          906          907          908          909 
 -1.48164393 -24.17764897  29.11124799  -2.02889611  -5.52511565 -12.48831059   4.07939522 -32.94050343 -22.71976014 
         910          911          912          913          914          915          916          917          918 
-28.10846299 -31.69471952 -31.52350671 -28.31093725 -60.02123006  -3.79460478 -23.28850343  11.06194714 -11.20350671 
         919          920          921          922          923          924          925          926          927 
-14.34093725  -9.22123006  -3.54060478 -14.62204157 -25.02910652 -14.76460138 -19.52213977  -2.72201983 -20.86770283 
         928          929          930          931          932          933          934          935          936 
-22.34414324 -11.57835547 -22.66931212 -30.66785241  -5.87795984  -5.98630862   2.41989490   2.99758264   0.89852409 
         937          938          939          940          941          942          943          944          945 
  1.88634356  10.15361686   3.58534848  -3.67335664  20.82582164  24.07737359  25.44957592  30.47889508  16.00361514 
         946          947          948          949          950          951          952          953          954 
  8.11098624  14.27826608  14.55237359  16.31026608  22.59570692  11.61073627  -2.99799089 -11.84178957 -23.19758306 
         955          956          957          958          959          960          961          962          963 
-34.17829393 -36.00133340 -43.00838728 -37.52478868 -23.17973241 -12.79973253 -12.31753835  -1.77822600 -17.02650296 
         964          965          966          967          968          969          970          971          972 
  8.09597550  32.80860009  36.94663780  26.15519844  47.67037120  66.20960009  -2.94749355 -14.18228058 -20.75885867 
         973          974          975          976          977          978          979          980          981 
-23.39295503 -18.54738008  15.18858521  14.71490899 -12.04709791  59.98950310  58.50783643  58.08450310  33.36386211 
         982          983          984          985          986          987          988          989          990 
-14.76093251 -22.78050437 -54.54467016 -33.37791421 -37.46349274 -10.86718621  -0.74453434 -10.86718621   3.35793583 
         991          992          993          994          995          996          997          998          999 
-10.86718621  -5.61726642 -10.59706533  11.30167675  23.35399568  17.95524231  17.56121946  20.89497550  20.33808504 
        1000 
  3.56962660 
 [ reached 'max' / getOption("max.print") -- omitted 10228 entries ]
residuals(lepmac.lm, quantileFunction = qnorm)
           1            2            3            4            5            6            7            8            9 
 22.23397044  40.32784460  42.50544812  36.51041643  28.56432731  15.51020391   9.99081360  19.68051353   0.14791951 
          10           11           12           13           14           15           16           17           18 
 12.57062876  29.55689469  18.62575046  16.95882559  16.96210164   0.04956499  -8.58640250 -30.64438335  -3.31474103 
          19           20           21           22           23           24           25           26           27 
 -8.15455419 -31.64744494   2.51041165 -11.65511533  -4.76545516   2.34849855  -2.34941320 -25.05065716  -3.03152587 
          28           29           30           31           32           33           34           35           36 
-22.19299146 -39.08588181 -54.48091604  21.81171420   6.70882268  -2.94360633  -5.67920069  -2.64018284 -51.37230899 
          37           38           39           40           41           42           43           44           45 
  4.06672101  -7.52257931  -7.47867097 -10.67531249  26.61581981  24.48515148   1.93332924  -1.37051198  -4.87160110 
          46           47           48           49           50           51           52           53           54 
  7.47427550  -3.12511481 -16.29541488  -5.44175360  25.27194036  16.12804981 -14.01052194   3.83383869   1.19173701 
          55           56           57           58           59           60           61           62           63 
-15.29083031 -17.64075115  25.60778551  27.54978047  25.08381818   3.07404549   5.96255157  -6.91886316 -10.59303052 
          64           65           66           67           68           69           70           71           72 
-11.10932258  -0.21554782   1.59067742  -0.94932258 -21.44958952 -38.12689718 -26.27437901 -49.23581112   6.77051932 
          73           74           75           76           77           78           79           80           81 
 -8.69791279 -22.86243839  40.40889947  16.82841764 -21.95327993  26.27370592   9.32147782 -41.46641390  29.87391453 
          82           83           84           85           86           87           88           89           90 
 20.15866218  18.21013000  11.74540330   2.04936908  33.94723361  28.37013000  -2.30646752  -5.60102218 -13.98823208 
          91           92           93           94           95           96           97           98           99 
-11.92063092   8.98719473 -15.22855862 -28.23511895 -33.08854949 -30.48471072 -14.19880819 -15.50781310 -13.91821162 
         100          101          102          103          104          105          106          107          108 
-33.74639884  10.90818690  19.51391908  10.90818690   0.52052806   0.24531343   4.30787645  18.28899290  24.46154139 
         109          110          111          112          113          114          115          116          117 
-17.32741694 -34.83870976 -27.05000710  20.78616820  -9.58817825 -11.94668657 -21.20757809  -1.44256527  16.99057759 
         118          119          120          121          122          123          124          125          126 
 15.18015908  18.53768138  22.68766651  34.23647839   9.40062018  19.04676806  12.61101471  29.99978772  45.55102384 
         127          128          129          130          131          132          133          134          135 
 46.93312105  35.39102384 -32.84743402  31.16013697 -28.81617168 -25.26310620 -32.22634346 -11.17368772 -63.74117168 
         136          137          138          139          140          141          142          143          144 
-78.22856569  30.23882832  19.71606046  -9.90368772 -11.15270084 -21.26146557 -41.31410069 -13.18486830  -9.38265615 
         145          146          147          148          149          150          151          152          153 
  8.36441640  12.36366304  10.91130685   4.72006289  10.51317243 -25.88486830   5.43317243 -22.49704268 -31.66784159 
         154          155          156          157          158          159          160          161          162 
-39.01758909  -9.47482065 -21.96414435  27.71674399  42.53510342  14.59255659  24.81167718  40.60491658 -18.37651742 
         163          164          165          166          167          168          169          170          171 
 47.56957551  27.80281490   4.30617700  30.64324988  -4.46364678   1.28343082  -1.16730307  13.66884172   4.06484052 
         172          173          174          175          176          177          178          179          180 
 19.72088858  18.67997487   8.94249304  31.57406093   4.70953532  19.65755963  23.85510383  26.25610197  28.22693615 
         181          182          183          184          185          186          187          188          189 
  8.19177050  21.10554642  40.24960282  35.05160144  36.75017658 -20.71404737  21.07319907  29.93507023  40.92693615 
         190          191          192          193          194          195          196          197          198 
 34.54360144  34.21017658   4.38177050  29.07360282  40.80893478  -0.41063293  -6.83587093 -23.10973841 -20.19667639 
         199          200          201          202          203          204          205          206          207 
 16.35733700  30.22998926  -2.74929544  15.93400367  22.24053472  34.22923590  16.84896909  59.18598926  36.61207863 
         208          209          210          211          212          213          214          215          216 
 20.05844844   2.77139063  -5.58496234   1.89638265   2.78200058   1.56786124  -8.41296810 -15.22749701   4.35889063 
         217          218          219          220          221          222          223          224          225 
-10.02996234   4.36186124   0.22303190 -15.22749701  18.19660918   0.80289063   1.49772997  -2.08295068  -2.29799942 
         226          227          228          229          230          231          232          233          234 
  4.99686124  -1.47030144 -11.26821823   1.81889063   5.63186124  -4.85696810   4.22660918   1.92506587 -10.53719745 
         235          236          237          238          239          240          241          242          243 
 -2.14462938  21.02159084  22.16348459  19.82235924 -16.98382302  22.37515126   7.63035924 -15.71382302  45.22235924 
         244          245          246          247          248          249          250          251          252 
 37.60235924 -11.90382302  -4.01444642  -2.50057128  -1.19876719  -5.20340929   0.51282766  -7.64829045  -1.93562044 
         253          254          255          256          257          258          259          260          261 
 -8.28276691   2.19041987   6.38942872  18.77486917 -12.40007596  -7.74217234 -18.14695712  -1.93562044  10.62276206 
         262          263          264          265          266          267          268          269          270 
  7.34486917   3.01970955   9.49437956   1.57996407   0.45873209  -8.23582765  -7.37898938 -29.62215068 -32.75293786 
         271          272          273          274          275          276          277          278          279 
 -6.58482765 -13.54756081  -5.40748401 -13.06793786 -28.77836840 -10.95866122 -18.27821974 -15.09755427   2.47399460 
         280          281          282          283          284          285          286          287          288 
 19.43244452   4.58210255   6.77643967  -2.09206162   1.73689292  -3.67122708   1.70264868  38.84633949 -15.98045785 
         289          290          291          292          293          294          295          296          297 
 26.08664868  47.73633949 -16.56554496 -10.35665607 -16.61545785   0.68664868  43.92633949   7.65989242  -4.66557903 
         298          299          300          301          302          303          304          305          306 
  1.78965051   4.38725898  11.26936610   2.95442097   1.36631717 -25.45895095 -20.27444581 -12.19087309 -23.29043569 
         307          308          309          310          311          312          313          314          315 
  5.78964204   5.18554733 -10.35916432   1.13052649 -17.03905035 -25.34917570 -17.23080734 -18.38739284 -20.30850840 
         316          317          318          319          320          321          322          323          324 
-36.18117246 -42.12120739 -22.27266961 -20.63345466 -20.10226598 -11.59495595 -11.08389447 -19.32883879  -9.45567387 
         325          326          327          328          329          330          331          332          333 
-26.29766444  -6.34001322  -1.80819905  13.46876039  10.66574257  13.34363896  -3.28108774   6.66064388  31.62074257 
         334          335          336          337          338          339          340          341          342 
 26.04363896  23.38891226  -6.03935612  -9.78766444 -23.16751322  11.78988613  -3.05618669 -18.85819005 -23.76497259 
         343          344          345          346          347          348          349          350          351 
-14.92571714 -12.29343306   1.15228766   0.50522214   8.51739505   2.81756331   9.38939295 -24.59549145  12.89161586 
         352          353          354          355          356          357          358          359          360 
 -2.46394039   4.40284188   7.81161586  28.45512541  14.30618918  25.16007349   2.80817738  18.58450855  22.48717141 
         361          362          363          364          365          366          367          368          369 
 42.84845874  14.47552251  -1.50992651 -11.19582274 -19.60362856 -23.50358327 -37.06112402   1.39698623  -8.67069019 
         370          371          372          373          374          375          376          377          378 
-30.70024994 -25.98668006 -25.88223962 -14.61969348 -18.77312402  17.38430652   6.11887598  17.38430652 -11.70606046 
         379          380          381          382          383          384          385          386          387 
  8.53043691   8.94965513   7.66204333   3.32411362  -2.31817115 -16.58683448 -16.58398094 -10.37845198  39.20161362 
         388          389          390          391          392          393          394          395          396 
  6.27316552 -13.47519638  -8.25891760 -15.45845198   3.73316552  -6.42398094  28.06510404  24.57364109  19.27549780 
         397          398          399          400          401          402          403          404          405 
 25.24847486  14.09070700  13.30108085   5.13800917   7.04300917  20.46175547  -9.54148383  -4.60888959 -25.76544778 
         406          407          408          409          410          411          412          413          414 
-52.43587679   8.32713984  -6.59019496 -11.82522919  -9.91879915 -13.52978328 -10.50457537 -23.68081933 -12.37697632 
         415          416          417          418          419          420          421          422          423 
 -2.32844190 -36.40866559 -22.53697632 -40.85177523   4.17149128  -7.73175495 -14.13631508 -20.57603603 -19.54620111 
         424          425          426          427          428          429          430          431          432 
-25.78804075 -32.43795810  -9.79850872 -25.72342161 -18.27620111  -7.28232646 -19.31462477 -23.54795810  37.46233711 
         433          434          435          436          437          438          439          440          441 
 23.21331923  31.97033285  40.87690846  31.40863806  27.12772851  19.46485077   2.20271677  15.43826328  28.67495431 
         442          443          444          445          446          447          448          449          450 
 31.03537323  21.69075731  17.06531312   8.51895144  -5.13542265  -9.01561657   9.56451328  14.01731312  -5.20561657 
         451          452          453          454          455          456          457          458          459 
-33.57931355 -46.99979538  -9.25344670 -16.74078123 -25.11467256 -22.78431355 -31.33646204 -23.44459112 -25.19775309 
         460          461          462          463          464          465          466          467          468 
-33.74472878 -38.94866730 -44.65361162 -28.49931355 -44.45979538   3.51272828   9.68682662   5.31668676  -7.41643135 
         469          470          471          472          473          474          475          476          477 
-14.21201387 -29.83090462 -32.70018155 -50.17484959 -11.05360779  -8.31922127 -21.47610567 -35.55099836 -31.20582214 
         478          479          480          481          482          483          484          485          486 
-28.18153615 -25.14520739 -25.49586541   1.61066211 -21.22419380 -25.14708571 -24.34809075 -18.85538637 -16.31567422 
         487          488          489          490          491          492          493          494          495 
 -2.88231965 -18.30373438 -15.62790174  -9.12895259   4.07404195  11.29259920  13.07524351  14.62102370   8.20016993 
         496          497          498          499          500          501          502          503          504 
 -7.57731918 -16.67669646 -11.13331918  19.70102370  -4.90161865  -0.13634531   1.65776258   2.08539809  -3.24839102 
         505          506          507          508          509          510          511          512          513 
-11.81559470  43.56360880  22.70511988  21.72961200  12.55585622   8.77273281   5.15834251  28.72939768  21.50864998 
         514          515          516          517          518          519          520          521          522 
 -2.16198179  16.00975454   1.24624083   3.03413485   5.66268595 -10.59320460   1.60868322  33.10270602  34.26171751 
         523          524          525          526          527          528          529          530          531 
 30.89486300   8.69277965  15.16432338   0.12879229  12.46141049 -47.84513700   4.98127744  35.78611298  13.89432338 
         532          533          534          535          536          537          538          539          540 
  7.52127744 -31.56661583  11.35432338 -15.24845213 -16.66915419 -29.22153328 -47.68420499  15.65180005  21.14979501 
         541          542          543          544          545          546          547          548          549 
 20.84283272  23.38639336  -1.28153328 -28.63420499  32.83656611  12.47098402  43.07139336  31.56656611  20.80181805 
         550          551          552          553          554          555          556          557          558 
 35.19699165  44.76915769  50.84857422  46.50807936  39.77498542   8.48803444   7.93642844  63.44647254   7.83432676 
         559          560          561          562          563          564          565          566          567 
-16.12077428 -15.77531679 -24.12509818 -14.30022771 -15.09556242 -20.76298728 -20.10824828 -28.84574789 -42.43745757 
         568          569          570          571          572          573          574          575          576 
 22.71250496   6.33229258  -0.30063045 -14.03044362 -22.02933436 -35.56661130   3.85639498 -31.99952994 -24.60754365 
         577          578          579          580          581          582          583          584          585 
 -9.81574815   5.21444663 -10.53423068 -27.19732098 -38.03137470 -45.25599316 -42.94962353 -20.14984309 -13.83477088 
         586          587          588          589          590          591          592          593          594 
 -2.54933196  -4.23190894  -5.30717999   4.11980742  -1.93175000 -26.56036026 -44.20436164 -38.71532496 -23.00801045 
         595          596          597          598          599          600          601          602          603 
-39.92054710 -12.36425679 -22.01770605  -8.42003681   4.44221911 -25.68972449 -22.31522586 -20.00886501 -45.84404135 
         604          605          606          607          608          609          610          611          612 
-14.18444756 -29.49972449   5.25825635 -31.20244756  10.38727414 -10.39315072   6.44506017  -4.19826542 -19.68030175 
         613          614          615          616          617          618          619          620          621 
-28.80694427 -19.88318777 -33.97181313 -20.07494477 -30.84295607 -39.97756634 -48.26264464 -43.11413543 -42.71171653 
         622          623          624          625          626          627          628          629          630 
-46.81841985 -33.65546286 -44.57891212 -14.15453991 -27.95905896 -40.02194971 -55.33722664  -3.92368775 -15.79109352 
         631          632          633          634          635          636          637          638          639 
 31.05767987  17.74249204  -1.60209132  -6.03138092 -12.17691201 -21.68164699   2.00297892   5.37557315  -8.31232013 
         640          641          642          643          644          645          646          647          648 
 -9.35084130  -3.33299828   0.57767987  -7.31884130 -24.77959132   0.80915870 -37.47959132  21.90861908  -3.84974233 
         649          650          651          652          653          654          655          656          657 
  0.03224326  -8.83784343 -20.66186629 -24.94811025 -21.26304144 -21.41807567 -27.06109007 -41.85784343 -14.49182348 
         658          659          660          661          662          663          664          665          666 
-34.96685771   0.03012789 -16.67162547 -11.35064833 -14.36689229  10.90817652 -18.88019104 -27.90987211 -11.37995881 
         667          668          669          670          671          672          673          674          675 
-15.16064833 -27.06689229 -48.79956863 -29.45103479  -2.86034488 -14.75685714 -23.15916318 -30.01705373 -19.33720931 
         676          677          678          679          680          681          682          683          684 
-21.51216164  -5.85741742   0.13845917   0.65156887  21.78440149  18.05372979  11.10043416  34.38732814  21.18916756 
         685          686          687          688          689          690          691          692          693 
 14.65775283  18.60358546 -14.90285391  29.56839645  -1.94035069  -0.62403993  -2.76893184  40.31399481 -11.13915025 
         694          695          696          697          698          699          700          701          702 
 15.65946778  15.89104775  23.75202490  -9.65748359 -16.71285115 -11.34919888  -8.47053222   2.55604775  21.34678881 
         703          704          705          706          707          708          709          710          711 
 -4.77207429 -18.68258847 -24.88703024 -30.03242060  -6.02703450 -14.92175588 -19.55531280  -2.23573767  -6.35996162 
         712          713          714          715          716          717          718          719          720 
-13.74749827 -14.13120795   4.02875457 -30.25913617  46.38258552  16.07716066  29.73293670   3.26313273 -21.24243801 
         721          722          723          724          725          726          727          728          729 
-33.53623785 -24.11544878   3.23520989 -17.47444616 -30.82947938 -29.32853322 -14.24377801 -13.70528138 -13.08330423 
         730          731          732          733          734          735          736          737          738 
-24.44531388 -27.62220424 -30.56354150 -21.73625287 -14.03586338 -17.87702909 -25.97327305  -0.06609723 -11.72183634 
         739          740          741          742          743          744          745          746          747 
-25.33275991 -34.91491745 -34.74081033 -14.60920707 -15.72765483 -17.76776065 -28.79446198 -16.76572314  -4.88966459 
         748          749          750          751          752          753          754          755          756 
-11.09881997 -12.25539693  -9.32397916   3.88961143  13.59649802  15.59056591  -0.79645969 -20.39224940  -9.63449730 
         757          758          759          760          761          762          763          764          765 
-24.46274471  -4.88063760 -10.07831000  11.94107089  50.48420278  27.49487279  31.56172632  29.59051089  76.97441727 
         766          767          768          769          770          771          772          773          774 
 26.38732089  17.46420278  11.23887279  -4.20035319 -30.81274471 -15.25524471 -24.24813760   0.42807936   8.58771634 
         775          776          777          778          779          780          781          782          783 
  8.66732423  12.51488831  -4.61175794 -18.07753305 -14.81192064  38.82203117  19.94157539  -5.37753305   0.93753916 
         784          785          786          787          788          789          790          791          792 
 -6.82702192  35.96776097  39.46813592  51.44981890  34.77018343  27.92307982  16.37835312  19.04653592  32.58109431 
         793          794          795          796          797          798          799          800          801 
 -6.63822358 -13.75466327 -18.69060693 -15.35829426 -21.15454618 -34.02188273 -39.74467579 -15.16777524  43.55524677 
         802          803          804          805          806          807          808          809          810 
 36.84382564  29.42513803  15.68766923   7.99389895  32.12524677  16.88389895  29.58524677  35.16100256  14.34389895 
         811          812          813          814          815          816          817          818          819 
 13.64926222  12.22858011 -10.61931161   1.76865037  21.39591697  34.52377985  40.24726884  33.64347973  24.77389510 
         820          821          822          823          824          825          826          827          828 
 28.18611016  21.26821575 -15.71121684  16.27221784  34.45932477  24.70259161  32.96966841  20.73721456 -15.28788351 
         829          830          831          832          833          834          835          836          837 
 26.43221784  19.62259161   6.93178402  40.14821784   4.39466841  18.36711649   3.28999562   9.69432477  17.71759161 
         838          839          840          841          842          843          844          845          846 
 22.17466841  19.67149121 -14.24851111  19.71977921  21.99798615  23.52219704  -1.03491140 -12.07650586 -30.00106694 
         847          848          849          850          851          852          853          854          855 
 -9.45864392  15.79853435   7.00367132  -0.85422079  35.71419704  17.16842193   3.16349414  20.97367132   1.68577921 
         856          857          858          859          860          861          862          863          864 
 27.54603435   2.43167132   1.53900476  19.09664173  21.57699524   9.96095656  18.80883412  14.86805901  57.79762323 
         865          866          867          868          869          870          871          872          873 
 34.68383412   8.73567142  -1.53123706 -11.93069221 -18.81516008 -29.85537781  -4.46350860   2.95990571   0.50706472 
         874          875          876          877          878          879          880          881          882 
 10.58685379   3.30562435  -0.31018158 -22.23537781 -30.14262948 -49.61809429  19.56162435  27.18162435   6.19636682 
         883          884          885          886          887          888          889          890          891 
 -9.78692213   5.90531494  13.52979530   7.64791807   2.75604393  57.69626505  45.92803861  42.44727559  58.52593694 
         892          893          894          895          896          897          898          899          900 
 39.14741553 -15.85936166  20.59681761  11.12835103  14.41367446   6.88794938   7.06712214   2.82170741 -10.22889933 
         901          902          903          904          905          906          907          908          909 
 -1.48164393 -24.17764897  29.11124799  -2.02889611  -5.52511565 -12.48831059   4.07939522 -32.94050343 -22.71976014 
         910          911          912          913          914          915          916          917          918 
-28.10846299 -31.69471952 -31.52350671 -28.31093725 -60.02123006  -3.79460478 -23.28850343  11.06194714 -11.20350671 
         919          920          921          922          923          924          925          926          927 
-14.34093725  -9.22123006  -3.54060478 -14.62204157 -25.02910652 -14.76460138 -19.52213977  -2.72201983 -20.86770283 
         928          929          930          931          932          933          934          935          936 
-22.34414324 -11.57835547 -22.66931212 -30.66785241  -5.87795984  -5.98630862   2.41989490   2.99758264   0.89852409 
         937          938          939          940          941          942          943          944          945 
  1.88634356  10.15361686   3.58534848  -3.67335664  20.82582164  24.07737359  25.44957592  30.47889508  16.00361514 
         946          947          948          949          950          951          952          953          954 
  8.11098624  14.27826608  14.55237359  16.31026608  22.59570692  11.61073627  -2.99799089 -11.84178957 -23.19758306 
         955          956          957          958          959          960          961          962          963 
-34.17829393 -36.00133340 -43.00838728 -37.52478868 -23.17973241 -12.79973253 -12.31753835  -1.77822600 -17.02650296 
         964          965          966          967          968          969          970          971          972 
  8.09597550  32.80860009  36.94663780  26.15519844  47.67037120  66.20960009  -2.94749355 -14.18228058 -20.75885867 
         973          974          975          976          977          978          979          980          981 
-23.39295503 -18.54738008  15.18858521  14.71490899 -12.04709791  59.98950310  58.50783643  58.08450310  33.36386211 
         982          983          984          985          986          987          988          989          990 
-14.76093251 -22.78050437 -54.54467016 -33.37791421 -37.46349274 -10.86718621  -0.74453434 -10.86718621   3.35793583 
         991          992          993          994          995          996          997          998          999 
-10.86718621  -5.61726642 -10.59706533  11.30167675  23.35399568  17.95524231  17.56121946  20.89497550  20.33808504 
        1000 
  3.56962660 
 [ reached 'max' / getOption("max.print") -- omitted 10228 entries ]
plot(lepmac.lm)

Post-hoc comparisons

lepmac.emm <- emmeans(lepmac.lm, ~ begin_date_year*age_group)
pairs(lepmac.emm, simple = "age_group")
begin_date_year = 1989:
 contrast                  estimate    SE    df  t.ratio p.value
 age_group0 - age_group1     -21.76 2.880 11201   -7.543  <.0001
 age_group0 - age_group2     -52.09 2.830 11201  -18.382  <.0001
 age_group0 - age_group3     -80.05 2.820 11201  -28.359  <.0001
 age_group0 - age_group4    -104.21 2.820 11201  -36.899  <.0001
 age_group0 - age_group5    -124.17 2.830 11201  -43.862  <.0001
 age_group0 - age_group6    -139.76 2.850 11201  -49.063  <.0001
 age_group0 - age_group7    -152.10 2.880 11201  -52.762  <.0001
 age_group0 - age_group8    -163.22 2.970 11201  -54.882  <.0001
 age_group0 - age_group9    -175.06 3.180 11201  -55.066  <.0001
 age_group0 - age_group10   -184.14 3.550 11201  -51.915  <.0001
 age_group0 - age_group11   -196.93 4.560 11201  -43.223  <.0001
 age_group1 - age_group2     -30.33 1.060 11201  -28.615  <.0001
 age_group1 - age_group3     -58.29 1.030 11201  -56.848  <.0001
 age_group1 - age_group4     -82.46 1.030 11201  -80.359  <.0001
 age_group1 - age_group5    -102.42 1.040 11201  -98.224  <.0001
 age_group1 - age_group6    -118.00 1.090 11201 -108.756  <.0001
 age_group1 - age_group7    -130.35 1.170 11201 -111.608  <.0001
 age_group1 - age_group8    -141.46 1.370 11201 -102.915  <.0001
 age_group1 - age_group9    -153.31 1.770 11201  -86.395  <.0001
 age_group1 - age_group10   -162.39 2.370 11201  -68.388  <.0001
 age_group1 - age_group11   -175.18 3.720 11201  -47.140  <.0001
 age_group2 - age_group3     -27.96 0.860 11201  -32.528  <.0001
 age_group2 - age_group4     -52.13 0.860 11201  -60.627  <.0001
 age_group2 - age_group5     -72.09 0.879 11201  -82.001  <.0001
 age_group2 - age_group6     -87.67 0.928 11201  -94.481  <.0001
 age_group2 - age_group7    -100.02 1.020 11201  -97.781  <.0001
 age_group2 - age_group8    -111.13 1.250 11201  -88.691  <.0001
 age_group2 - age_group9    -122.98 1.680 11201  -73.119  <.0001
 age_group2 - age_group10   -132.06 2.310 11201  -57.246  <.0001
 age_group2 - age_group11   -144.85 3.670 11201  -39.434  <.0001
 age_group3 - age_group4     -24.16 0.814 11201  -29.681  <.0001
 age_group3 - age_group5     -44.12 0.834 11201  -52.897  <.0001
 age_group3 - age_group6     -59.71 0.885 11201  -67.492  <.0001
 age_group3 - age_group7     -72.05 0.983 11201  -73.277  <.0001
 age_group3 - age_group8     -83.17 1.220 11201  -68.145  <.0001
 age_group3 - age_group9     -95.02 1.660 11201  -57.322  <.0001
 age_group3 - age_group10   -104.09 2.290 11201  -45.461  <.0001
 age_group3 - age_group11   -116.88 3.660 11201  -31.916  <.0001
 age_group4 - age_group5     -19.96 0.833 11201  -23.952  <.0001
 age_group4 - age_group6     -35.55 0.884 11201  -40.231  <.0001
 age_group4 - age_group7     -47.89 0.982 11201  -48.771  <.0001
 age_group4 - age_group8     -59.01 1.220 11201  -48.400  <.0001
 age_group4 - age_group9     -70.85 1.660 11201  -42.771  <.0001
 age_group4 - age_group10    -79.93 2.290 11201  -34.916  <.0001
 age_group4 - age_group11    -92.72 3.660 11201  -25.320  <.0001
 age_group5 - age_group6     -15.59 0.902 11201  -17.289  <.0001
 age_group5 - age_group7     -27.93 0.998 11201  -27.987  <.0001
 age_group5 - age_group8     -39.05 1.230 11201  -31.695  <.0001
 age_group5 - age_group9     -50.89 1.670 11201  -30.549  <.0001
 age_group5 - age_group10    -59.97 2.300 11201  -26.117  <.0001
 age_group5 - age_group11    -72.76 3.670 11201  -19.846  <.0001
 age_group6 - age_group7     -12.34 1.040 11201  -11.882  <.0001
 age_group6 - age_group8     -23.46 1.260 11201  -18.548  <.0001
 age_group6 - age_group9     -35.31 1.690 11201  -20.888  <.0001
 age_group6 - age_group10    -44.38 2.310 11201  -19.178  <.0001
 age_group6 - age_group11    -57.17 3.680 11201  -15.548  <.0001
 age_group7 - age_group8     -11.12 1.330 11201   -8.331  <.0001
 age_group7 - age_group9     -22.96 1.740 11201  -13.175  <.0001
 age_group7 - age_group10    -32.04 2.350 11201  -13.615  <.0001
 age_group7 - age_group11    -44.83 3.700 11201  -12.110  <.0001
 age_group8 - age_group9     -11.85 1.890 11201   -6.282  <.0001
 age_group8 - age_group10    -20.92 2.460 11201   -8.501  <.0001
 age_group8 - age_group11    -33.71 3.770 11201   -8.939  <.0001
 age_group9 - age_group10     -9.08 2.700 11201   -3.356  0.0380
 age_group9 - age_group11    -21.87 3.930 11201   -5.558  <.0001
 age_group10 - age_group11   -12.79 4.240 11201   -3.016  0.1039

P value adjustment: tukey method for comparing a family of 12 estimates 
test(pairs(lepmac.emm, by = "begin_date_year"), by = NULL, adjust = "mvt")
 contrast                  begin_date_year estimate    SE    df  t.ratio p.value
 age_group0 - age_group1              1989   -21.76 2.880 11201   -7.543  <.0001
 age_group0 - age_group2              1989   -52.09 2.830 11201  -18.382  <.0001
 age_group0 - age_group3              1989   -80.05 2.820 11201  -28.359  <.0001
 age_group0 - age_group4              1989  -104.21 2.820 11201  -36.899  <.0001
 age_group0 - age_group5              1989  -124.17 2.830 11201  -43.862  <.0001
 age_group0 - age_group6              1989  -139.76 2.850 11201  -49.063  <.0001
 age_group0 - age_group7              1989  -152.10 2.880 11201  -52.762  <.0001
 age_group0 - age_group8              1989  -163.22 2.970 11201  -54.882  <.0001
 age_group0 - age_group9              1989  -175.06 3.180 11201  -55.066  <.0001
 age_group0 - age_group10             1989  -184.14 3.550 11201  -51.915  <.0001
 age_group0 - age_group11             1989  -196.93 4.560 11201  -43.223  <.0001
 age_group1 - age_group2              1989   -30.33 1.060 11201  -28.615  <.0001
 age_group1 - age_group3              1989   -58.29 1.030 11201  -56.848  <.0001
 age_group1 - age_group4              1989   -82.46 1.030 11201  -80.359  <.0001
 age_group1 - age_group5              1989  -102.42 1.040 11201  -98.224  <.0001
 age_group1 - age_group6              1989  -118.00 1.090 11201 -108.756  <.0001
 age_group1 - age_group7              1989  -130.35 1.170 11201 -111.608  <.0001
 age_group1 - age_group8              1989  -141.46 1.370 11201 -102.915  <.0001
 age_group1 - age_group9              1989  -153.31 1.770 11201  -86.395  <.0001
 age_group1 - age_group10             1989  -162.39 2.370 11201  -68.388  <.0001
 age_group1 - age_group11             1989  -175.18 3.720 11201  -47.140  <.0001
 age_group2 - age_group3              1989   -27.96 0.860 11201  -32.528  <.0001
 age_group2 - age_group4              1989   -52.13 0.860 11201  -60.627  <.0001
 age_group2 - age_group5              1989   -72.09 0.879 11201  -82.001  <.0001
 age_group2 - age_group6              1989   -87.67 0.928 11201  -94.481  <.0001
 age_group2 - age_group7              1989  -100.02 1.020 11201  -97.781  <.0001
 age_group2 - age_group8              1989  -111.13 1.250 11201  -88.691  <.0001
 age_group2 - age_group9              1989  -122.98 1.680 11201  -73.119  <.0001
 age_group2 - age_group10             1989  -132.06 2.310 11201  -57.246  <.0001
 age_group2 - age_group11             1989  -144.85 3.670 11201  -39.434  <.0001
 age_group3 - age_group4              1989   -24.16 0.814 11201  -29.681  <.0001
 age_group3 - age_group5              1989   -44.12 0.834 11201  -52.897  <.0001
 age_group3 - age_group6              1989   -59.71 0.885 11201  -67.492  <.0001
 age_group3 - age_group7              1989   -72.05 0.983 11201  -73.277  <.0001
 age_group3 - age_group8              1989   -83.17 1.220 11201  -68.145  <.0001
 age_group3 - age_group9              1989   -95.02 1.660 11201  -57.322  <.0001
 age_group3 - age_group10             1989  -104.09 2.290 11201  -45.461  <.0001
 age_group3 - age_group11             1989  -116.88 3.660 11201  -31.916  <.0001
 age_group4 - age_group5              1989   -19.96 0.833 11201  -23.952  <.0001
 age_group4 - age_group6              1989   -35.55 0.884 11201  -40.231  <.0001
 age_group4 - age_group7              1989   -47.89 0.982 11201  -48.771  <.0001
 age_group4 - age_group8              1989   -59.01 1.220 11201  -48.400  <.0001
 age_group4 - age_group9              1989   -70.85 1.660 11201  -42.771  <.0001
 age_group4 - age_group10             1989   -79.93 2.290 11201  -34.916  <.0001
 age_group4 - age_group11             1989   -92.72 3.660 11201  -25.320  <.0001
 age_group5 - age_group6              1989   -15.59 0.902 11201  -17.289  <.0001
 age_group5 - age_group7              1989   -27.93 0.998 11201  -27.987  <.0001
 age_group5 - age_group8              1989   -39.05 1.230 11201  -31.695  <.0001
 age_group5 - age_group9              1989   -50.89 1.670 11201  -30.549  <.0001
 age_group5 - age_group10             1989   -59.97 2.300 11201  -26.117  <.0001
 age_group5 - age_group11             1989   -72.76 3.670 11201  -19.846  <.0001
 age_group6 - age_group7              1989   -12.34 1.040 11201  -11.882  <.0001
 age_group6 - age_group8              1989   -23.46 1.260 11201  -18.548  <.0001
 age_group6 - age_group9              1989   -35.31 1.690 11201  -20.888  <.0001
 age_group6 - age_group10             1989   -44.38 2.310 11201  -19.178  <.0001
 age_group6 - age_group11             1989   -57.17 3.680 11201  -15.548  <.0001
 age_group7 - age_group8              1989   -11.12 1.330 11201   -8.331  <.0001
 age_group7 - age_group9              1989   -22.96 1.740 11201  -13.175  <.0001
 age_group7 - age_group10             1989   -32.04 2.350 11201  -13.615  <.0001
 age_group7 - age_group11             1989   -44.83 3.700 11201  -12.110  <.0001
 age_group8 - age_group9              1989   -11.85 1.890 11201   -6.282  <.0001
 age_group8 - age_group10             1989   -20.92 2.460 11201   -8.501  <.0001
 age_group8 - age_group11             1989   -33.71 3.770 11201   -8.939  <.0001
 age_group9 - age_group10             1989    -9.08 2.700 11201   -3.356  0.0292
 age_group9 - age_group11             1989   -21.87 3.930 11201   -5.558  <.0001
 age_group10 - age_group11            1989   -12.79 4.240 11201   -3.016  0.0814

P value adjustment: mvt method for 66 tests 
#export tables
# #interpret(eta_squared(lepmac.lm), rules = "cohen1992") %>%
#   write.csv(file = "Outputs/Tables/lepmac_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
lepmac.slopes <- emtrends(lepmac.lm, ~age_group, var = "begin_date_year")
# Compare estimated slopes to 0
lepmac.slope.contrasts <- test(lepmac.slopes) %>% 
  mutate(Species = "Bluegill") %>% 
  rename(Age = age_group)

lepmac.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/lepmac_emmeans.csv")

Plot raw data

(lepmac.length.year.plot <- ggplot(data = lepmac %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)
`geom_smooth()` using formula = 'y ~ x'

Marginal Effects

result <- predict_response(lepmac.lm, c("begin_date_year", "age_group"))

# plot(result)
# test_predictions(result) %>% 
#   write.csv(file = "Outputs/Tables/lepmac_pairwise_length_time_slopes.csv", row.names = F)

(lepmac.marginal.plot <- ggpredict(lepmac.lm, terms = c("begin_date_year", "age_group")) %>%  
    plot()+
    #stat_poly_eq(use_label("eq"))+
    stat_regline_equation()+
    stat_poly_line()+
    # annotate(geom = "text", label = "y = 77 + 0.07x", x = 2000, y = 224)+
    # annotate(geom = "text", label = "y = 21 + 0.093x", x = 2000, y = 212)+
    # annotate(geom = "text", label = "y = -64 + 0.13x", x = 2000, y = 199)+
    # annotate(geom = "text", label = "y = 230 - 0.028x", x = 2000, y = 182)+
    # annotate(geom = "text", label = "y = 610 - 0.23x", x = 2000, y = 160)+
    # annotate(geom = "text", label = "y = 920 - 0.39x", x = 2000, y = 137)+
    # annotate(geom = "text", label = "y = 1200 - 0.55x", x = 2000, y = 110)+
    # annotate(geom = "text", label = "y = 1700 - 0.83x", x = 2000, y = 80)+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(title = NULL,
         y = "Mean Length-at-Age (mm)",
         x = "Year")+
    guides(fill = guide_legend(title = "Age", reverse = T), color = guide_legend(title = "Age", reverse = T))+
    theme_bw()
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/lepmac_marginal_effects_plot.tiff", 
       lepmac.marginal.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

Brown Trout

Model

#filter data for only Black Crappie, Pomooxis nigromaculatus 
saltru <- all.grow.merge %>% filter(species == "brown_trout") %>% 
  filter(age_group %in% c(1, 2, 3, 4, 5), #match age groups in BRTs
         !is.na(age_group), !is.na(begin_date_year), !is.na(length_mean_mm),
         !is.na(log_max_depth), !is.na(logarea))

#linear model
saltru.lm <- lm(length_mean_mm ~ begin_date_year*age_group + log_max_depth + logarea + doy, data = saltru)
summary(saltru.lm)

Call:
lm(formula = length_mean_mm ~ begin_date_year * age_group + log_max_depth + 
    logarea + doy, data = saltru)

Residuals:
     Min       1Q   Median       3Q      Max 
-213.730  -50.727    0.198   46.483  242.100 

Coefficients:
                             Estimate Std. Error t value Pr(>|t|)    
(Intercept)                 2365.7783  1967.7017   1.202 0.230283    
begin_date_year               -1.1273     0.9853  -1.144 0.253602    
age_group2                  -163.0585  2266.8338  -0.072 0.942708    
age_group3                 -1358.6741  2231.2552  -0.609 0.543077    
age_group4                 -1809.9731  2416.6240  -0.749 0.454519    
age_group5                  -668.1506  2657.7475  -0.251 0.801695    
log_max_depth                  6.4132     9.2721   0.692 0.489735    
logarea                        8.6099     2.5278   3.406 0.000758 ***
doy                            0.2366     0.0757   3.126 0.001962 ** 
begin_date_year:age_group2     0.1264     1.1376   0.111 0.911590    
begin_date_year:age_group3     0.7729     1.1197   0.690 0.490648    
begin_date_year:age_group4     1.0314     1.2138   0.850 0.396212    
begin_date_year:age_group5     0.4877     1.3355   0.365 0.715262    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 76.94 on 274 degrees of freedom
  (7 observations deleted due to missingness)
Multiple R-squared:  0.6493,    Adjusted R-squared:  0.634 
F-statistic: 42.28 on 12 and 274 DF,  p-value: < 2.2e-16
#calculate and interpret effect sizes
eta_squared(saltru.lm)
          begin_date_year                 age_group             log_max_depth                   logarea 
               0.04030015                0.55714211                0.02014525                0.01592787 
                      doy begin_date_year:age_group 
               0.01402504                0.00177078 
#interpret(eta_squared(saltru.lm), rules = "cohen1992")

#calculate AIC score
AIC(saltru.lm)
[1] 3322.092
#examine model fit
testDispersion(saltru.lm)

    DHARMa nonparametric dispersion test via sd of residuals fitted vs. simulated

data:  simulationOutput
dispersion = 0.95597, p-value = 0.592
alternative hypothesis: two.sided

simulation.output <- simulateResiduals(fittedModel = saltru.lm)

residuals(saltru.lm)
           1            2            3            4            5            6            7            8            9 
  21.8678104   40.6811565   31.5545026    4.5448582   50.5982283  -56.8884496  -56.4372078   -9.7332195    6.0985907 
          10           11           12           13           14           15           16           17           18 
 -41.2371804 -113.4188114  -75.4869458   -7.9242592  -11.6018448  -21.0074584    7.0617408   -4.9978448    0.3796056 
          19           20           21           22           23           24           25           26           27 
  65.3067200   36.6611644   49.3611644   47.2028569   34.7839190   24.4545856 -104.2362920 -151.0021524   27.5702485 
          28           29           30           31           32           33           34           35           36 
-187.6388863 -148.0388191 -213.7297515   93.4544470 -145.4988191 -208.6497515 -104.2362920 -131.5288191    5.9802485 
          37           38           39           40           41           42           43           44           45 
  66.3611137 -194.2001984   -4.6810570    2.5663747   63.7437538  -23.2790067   46.4483839    2.5074077   55.0777941 
          46           47           48           49           50           51           52           53           54 
  53.6048581  -19.1258902    2.0528508  -60.0598956  -40.0383338  -44.4207082   62.3893733  160.9440765   36.4505150 
          55           56           57           58           59           60           61           62           63 
-110.0317852  139.1598975   48.7587906    2.8316238    2.4544388   74.9723897   87.5440072   62.7672854   84.1276035 
          64           65           66           67           68           69           70           71           72 
 180.1151362   11.3072772  -26.6682600   76.4398192   28.3042821  115.9261477   70.9665313   93.6647368 -107.3192110 
          73           75           76           77           78           79           80           81           82 
 -43.4658954  -92.7067833   47.7699334  -22.1710106  -42.0673095  -51.3303064   25.4436414    7.0197340  -42.7708443 
          83           84           85           86           87           88           89           90           91 
 -87.1297370  -93.1471432  -69.3904206   34.5875714   42.9345135  149.5161222  -63.5713746  -29.5419529  -40.8808456 
          92           93           94           95           96           97           98           99          100 
 -23.9740663   54.7260318   97.1581578  105.9487137   -0.7477693   12.0489734 -112.1561069  -71.7064787 -147.1234749 
         101          102          103          104          105          106          107          108          109 
 -64.2408811   73.8161220   45.0225239  110.7128637   27.8245950  -10.1786623  -39.3964089   20.8421887   32.1254419 
         110          111          112          113          114          115          116          117          118 
  88.0601826    9.4169254  -22.0257529   32.3225239   94.4846327   31.5074335  100.4647417  -18.2462782    4.9236294 
         119          120          121          122          123          124          125          126          127 
 -65.4733812   68.8009038   65.6370329   22.2498661  -72.3490687  -56.3555915  -62.2207130  -86.0170471  -56.1826666 
         128          129          130          131          132          133          134          135          136 
  -4.5765812   21.6957733 -128.5472818  -12.1483455   -5.6789167   36.0448996  -42.1947322   -1.9043923  -93.9676886 
         137          138          139          140          141          142          143          144          145 
 -49.0599395   88.1776581  -59.9093114  -39.3839497   28.3040164   59.3241453 -135.8878318   29.6222112   39.7802514 
         146          147          148          149          150          151          152          153          154 
  27.9657140   -1.8841324   30.5576985   73.6309449   21.5895027   37.0002389   58.3296606  -49.5894585   75.3071426 
         155          156          157          158          159          160          161          162          163 
  84.8432718   31.2961050  -56.0819170 -110.4180026  121.6835096  -56.8815755  -83.9385765 -103.5438946   46.5264057 
         164          165          166          167          168          169          170          171          172 
 -77.3786807  -76.0346241  -46.6539337  -91.0769699  -58.9778424  -71.2872113  -15.3104686  -67.3882152   44.4244178 
         173          174          175          176          177          178          179          180          181 
 -71.7249623  -81.0135094  -49.5903187  -48.1555175  -47.4285754  -67.0446801  -75.7978710  -24.9011283   56.0032782 
         182          183          184          185          186          187          188          189          190 
  -8.5578933    0.1979511   22.5254839   90.4266149   27.8000247    0.6640244   38.9305268  -19.1353720  -69.0523730 
         191          192          193          194          195          196          197          198          199 
-191.4536345  -56.9302993  -97.1696470   30.7808549  182.0462542  160.5016597  148.3701046    5.4631614  121.8374344 
         200          203          204          205          206          208          209          210          211 
 121.2592653   69.9268918   99.8287227  -12.8272196  -71.4765652  -33.1826479   -5.6327010  105.6278910  125.3635392 
         212          213          214          215          216          217          218          219          220 
  50.3116688   29.7432847   57.6601375   46.5173590   30.7811624  232.0713160  134.9731469  130.7201291  -58.4408412 
         221          222          223          224          225          226          227          228          229 
 -14.6375630   -2.6618042   88.9478933  101.0697243   81.5767064   76.4847717  -61.1865996   43.7594858   14.1518403 
         230          231          232          233          234          235          236          237          238 
  21.4030314  -48.4609445  -37.2915227  -28.3104155  -57.1878217   40.2291814   -8.8056118   36.9124283   91.5221321 
         239          240          241          242          243          244          245          246          247 
 136.7764280  -99.5974071   40.3493812  149.4854839  -23.2416614   14.2849515   21.0965286   21.9235107   91.4514884 
         248          249          250          251          252          253          254          255          256 
  65.4337272   43.5002628   -8.3373744 -131.2141373   -9.0572589  134.3608130  -20.6220347   29.9197087  -22.2790783 
         257          258          262          263          264          265          266          267          268 
 -16.5689246  -31.5601116  -68.9632410 -103.1164319  -95.3996892  -38.2574358  -59.1929811  -62.9522769  -71.0114671 
         269          270          271          272          273          274          275          276          277 
-126.6404036   -7.6257445  -35.9154046  -29.7751529  -36.6347693   69.8914228   31.1675519  -40.9954046  -50.1233639 
         278          279          280          281          282          283          284          285          286 
   2.1015086   65.7154668   39.8951351    9.1768703   -2.4463695  -47.2693664  242.1001395  -91.4981172   -6.9007811 
         287          288          289          290          291          292          293          294 
 -39.2162193  -88.0150891  -87.4459241   16.1150709  -30.8620491  -10.4491159  -23.4787030   32.4597087 
residuals(saltru.lm, quantileFunction = qnorm)
           1            2            3            4            5            6            7            8            9 
  21.8678104   40.6811565   31.5545026    4.5448582   50.5982283  -56.8884496  -56.4372078   -9.7332195    6.0985907 
          10           11           12           13           14           15           16           17           18 
 -41.2371804 -113.4188114  -75.4869458   -7.9242592  -11.6018448  -21.0074584    7.0617408   -4.9978448    0.3796056 
          19           20           21           22           23           24           25           26           27 
  65.3067200   36.6611644   49.3611644   47.2028569   34.7839190   24.4545856 -104.2362920 -151.0021524   27.5702485 
          28           29           30           31           32           33           34           35           36 
-187.6388863 -148.0388191 -213.7297515   93.4544470 -145.4988191 -208.6497515 -104.2362920 -131.5288191    5.9802485 
          37           38           39           40           41           42           43           44           45 
  66.3611137 -194.2001984   -4.6810570    2.5663747   63.7437538  -23.2790067   46.4483839    2.5074077   55.0777941 
          46           47           48           49           50           51           52           53           54 
  53.6048581  -19.1258902    2.0528508  -60.0598956  -40.0383338  -44.4207082   62.3893733  160.9440765   36.4505150 
          55           56           57           58           59           60           61           62           63 
-110.0317852  139.1598975   48.7587906    2.8316238    2.4544388   74.9723897   87.5440072   62.7672854   84.1276035 
          64           65           66           67           68           69           70           71           72 
 180.1151362   11.3072772  -26.6682600   76.4398192   28.3042821  115.9261477   70.9665313   93.6647368 -107.3192110 
          73           75           76           77           78           79           80           81           82 
 -43.4658954  -92.7067833   47.7699334  -22.1710106  -42.0673095  -51.3303064   25.4436414    7.0197340  -42.7708443 
          83           84           85           86           87           88           89           90           91 
 -87.1297370  -93.1471432  -69.3904206   34.5875714   42.9345135  149.5161222  -63.5713746  -29.5419529  -40.8808456 
          92           93           94           95           96           97           98           99          100 
 -23.9740663   54.7260318   97.1581578  105.9487137   -0.7477693   12.0489734 -112.1561069  -71.7064787 -147.1234749 
         101          102          103          104          105          106          107          108          109 
 -64.2408811   73.8161220   45.0225239  110.7128637   27.8245950  -10.1786623  -39.3964089   20.8421887   32.1254419 
         110          111          112          113          114          115          116          117          118 
  88.0601826    9.4169254  -22.0257529   32.3225239   94.4846327   31.5074335  100.4647417  -18.2462782    4.9236294 
         119          120          121          122          123          124          125          126          127 
 -65.4733812   68.8009038   65.6370329   22.2498661  -72.3490687  -56.3555915  -62.2207130  -86.0170471  -56.1826666 
         128          129          130          131          132          133          134          135          136 
  -4.5765812   21.6957733 -128.5472818  -12.1483455   -5.6789167   36.0448996  -42.1947322   -1.9043923  -93.9676886 
         137          138          139          140          141          142          143          144          145 
 -49.0599395   88.1776581  -59.9093114  -39.3839497   28.3040164   59.3241453 -135.8878318   29.6222112   39.7802514 
         146          147          148          149          150          151          152          153          154 
  27.9657140   -1.8841324   30.5576985   73.6309449   21.5895027   37.0002389   58.3296606  -49.5894585   75.3071426 
         155          156          157          158          159          160          161          162          163 
  84.8432718   31.2961050  -56.0819170 -110.4180026  121.6835096  -56.8815755  -83.9385765 -103.5438946   46.5264057 
         164          165          166          167          168          169          170          171          172 
 -77.3786807  -76.0346241  -46.6539337  -91.0769699  -58.9778424  -71.2872113  -15.3104686  -67.3882152   44.4244178 
         173          174          175          176          177          178          179          180          181 
 -71.7249623  -81.0135094  -49.5903187  -48.1555175  -47.4285754  -67.0446801  -75.7978710  -24.9011283   56.0032782 
         182          183          184          185          186          187          188          189          190 
  -8.5578933    0.1979511   22.5254839   90.4266149   27.8000247    0.6640244   38.9305268  -19.1353720  -69.0523730 
         191          192          193          194          195          196          197          198          199 
-191.4536345  -56.9302993  -97.1696470   30.7808549  182.0462542  160.5016597  148.3701046    5.4631614  121.8374344 
         200          203          204          205          206          208          209          210          211 
 121.2592653   69.9268918   99.8287227  -12.8272196  -71.4765652  -33.1826479   -5.6327010  105.6278910  125.3635392 
         212          213          214          215          216          217          218          219          220 
  50.3116688   29.7432847   57.6601375   46.5173590   30.7811624  232.0713160  134.9731469  130.7201291  -58.4408412 
         221          222          223          224          225          226          227          228          229 
 -14.6375630   -2.6618042   88.9478933  101.0697243   81.5767064   76.4847717  -61.1865996   43.7594858   14.1518403 
         230          231          232          233          234          235          236          237          238 
  21.4030314  -48.4609445  -37.2915227  -28.3104155  -57.1878217   40.2291814   -8.8056118   36.9124283   91.5221321 
         239          240          241          242          243          244          245          246          247 
 136.7764280  -99.5974071   40.3493812  149.4854839  -23.2416614   14.2849515   21.0965286   21.9235107   91.4514884 
         248          249          250          251          252          253          254          255          256 
  65.4337272   43.5002628   -8.3373744 -131.2141373   -9.0572589  134.3608130  -20.6220347   29.9197087  -22.2790783 
         257          258          262          263          264          265          266          267          268 
 -16.5689246  -31.5601116  -68.9632410 -103.1164319  -95.3996892  -38.2574358  -59.1929811  -62.9522769  -71.0114671 
         269          270          271          272          273          274          275          276          277 
-126.6404036   -7.6257445  -35.9154046  -29.7751529  -36.6347693   69.8914228   31.1675519  -40.9954046  -50.1233639 
         278          279          280          281          282          283          284          285          286 
   2.1015086   65.7154668   39.8951351    9.1768703   -2.4463695  -47.2693664  242.1001395  -91.4981172   -6.9007811 
         287          288          289          290          291          292          293          294 
 -39.2162193  -88.0150891  -87.4459241   16.1150709  -30.8620491  -10.4491159  -23.4787030   32.4597087 
plot(saltru.lm)

Post-hoc comparisons

saltru.emm <- emmeans(saltru.lm, ~ begin_date_year*age_group)
pairs(saltru.emm, simple = "age_group")
begin_date_year = 1987:
 contrast                estimate   SE  df t.ratio p.value
 age_group1 - age_group2    -88.2 17.0 274  -5.193  <.0001
 age_group1 - age_group3   -177.1 16.9 274 -10.483  <.0001
 age_group1 - age_group4   -239.6 17.4 274 -13.753  <.0001
 age_group1 - age_group5   -301.0 19.5 274 -15.446  <.0001
 age_group2 - age_group3    -88.9 12.7 274  -7.016  <.0001
 age_group2 - age_group4   -151.4 13.4 274 -11.334  <.0001
 age_group2 - age_group5   -212.8 16.0 274 -13.280  <.0001
 age_group3 - age_group4    -62.5 13.2 274  -4.728  <.0001
 age_group3 - age_group5   -123.9 15.9 274  -7.792  <.0001
 age_group4 - age_group5    -61.4 16.5 274  -3.731  0.0021

P value adjustment: tukey method for comparing a family of 5 estimates 
test(pairs(saltru.emm, by = "begin_date_year"), by = NULL, adjust = "mvt")
 contrast                begin_date_year estimate   SE  df t.ratio p.value
 age_group1 - age_group2            1987    -88.2 17.0 274  -5.193  <.0001
 age_group1 - age_group3            1987   -177.1 16.9 274 -10.483  <.0001
 age_group1 - age_group4            1987   -239.6 17.4 274 -13.753  <.0001
 age_group1 - age_group5            1987   -301.0 19.5 274 -15.446  <.0001
 age_group2 - age_group3            1987    -88.9 12.7 274  -7.016  <.0001
 age_group2 - age_group4            1987   -151.4 13.4 274 -11.334  <.0001
 age_group2 - age_group5            1987   -212.8 16.0 274 -13.280  <.0001
 age_group3 - age_group4            1987    -62.5 13.2 274  -4.728  <.0001
 age_group3 - age_group5            1987   -123.9 15.9 274  -7.792  <.0001
 age_group4 - age_group5            1987    -61.4 16.5 274  -3.731  0.0022

P value adjustment: mvt method for 10 tests 
#export tables
# #interpret(eta_squared(saltru.lm), rules = "cohen1992") %>%
#   write.csv(file = "Outputs/Tables/saltru_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
saltru.slopes <- emtrends(saltru.lm, ~age_group, var = "begin_date_year")
# Compare estimated slopes to 0
saltru.slope.contrasts <- test(saltru.slopes) %>% 
  mutate(Species = "Brown Trout") %>% 
  rename(Age = age_group)

saltru.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/saltru_emmeans.csv")

Plot raw data

(saltru.length.year.plot <- ggplot(data = saltru %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)
`geom_smooth()` using formula = 'y ~ x'

Marginal Effects

result <- predict_response(saltru.lm, c("begin_date_year", "age_group"))

# plot(result)
# test_predictions(result) %>% 
#   write.csv(file = "Outputs/Tables/saltru_pairwise_length_time_slopes.csv", row.names = F)

(saltru.marginal.plot <- ggpredict(saltru.lm, terms = c("begin_date_year", "age_group")) %>%  
    plot()+
    #stat_poly_eq(use_label("eq"))+
    stat_regline_equation()+
    stat_poly_line()+
    # annotate(geom = "text", label = "y = 3000 - 1.2x", x = 2000, y = 250)+
    # annotate(geom = "text", label = "y = 2000 - 0.76x", x = 2000, y = 350)+
    # annotate(geom = "text", label = "y = 1900 - 0.76x", x = 2000, y = 430)+
    # annotate(geom = "text", label = "y = 3200 - 1.4x", x = 2000, y = 500)+
    # annotate(geom = "text", label = "y = 4100 - 1.9x", x = 2000, y = 550)+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(title = NULL,
         y = "Mean Length-at-Age (mm)",
         x = "Year")+
    guides(fill = guide_legend(title = "Age", reverse = T), color = guide_legend(title = "Age", reverse = T))+
    theme_bw()
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/saltru_marginal_effects_plot.tiff", 
       saltru.marginal.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

Cisco

Model

#filter data for only Black Crappie, Pomooxis nigromaculatus 
corart <- all.grow.merge %>% filter(species == "cisco") %>% 
  filter(age_group %in% c(2, 3, 4, 5, 6, 7), #match age groups in BRTs
         !is.na(age_group), !is.na(begin_date_year), !is.na(length_mean_mm),
         !is.na(log_max_depth), !is.na(logarea))

#linear model
corart.lm <- lm(length_mean_mm ~ begin_date_year*age_group + log_max_depth + logarea + doy, data = corart)
summary(corart.lm)

Call:
lm(formula = length_mean_mm ~ begin_date_year * age_group + log_max_depth + 
    logarea + doy, data = corart)

Residuals:
     Min       1Q   Median       3Q      Max 
-114.179  -21.808    0.634   20.069  151.328 

Coefficients:
                             Estimate Std. Error t value Pr(>|t|)    
(Intercept)                 7.154e+02  5.518e+02   1.296  0.19559    
begin_date_year            -2.308e-01  2.789e-01  -0.828  0.40833    
age_group3                 -2.205e+02  7.287e+02  -0.303  0.76231    
age_group4                 -1.677e+02  6.777e+02  -0.247  0.80475    
age_group5                 -1.581e+03  7.498e+02  -2.108  0.03561 *  
age_group6                 -5.483e+02  7.203e+02  -0.761  0.44700    
age_group7                  3.134e+02  8.959e+02   0.350  0.72668    
log_max_depth              -1.178e+01  3.999e+00  -2.945  0.00342 ** 
logarea                    -2.261e-01  1.055e+00  -0.214  0.83034    
doy                         1.231e-01  2.362e-02   5.213 2.97e-07 ***
begin_date_year:age_group3  1.285e-01  3.689e-01   0.348  0.72768    
begin_date_year:age_group4  1.198e-01  3.428e-01   0.350  0.72688    
begin_date_year:age_group5  8.491e-01  3.793e-01   2.238  0.02574 *  
begin_date_year:age_group6  3.359e-01  3.642e-01   0.922  0.35698    
begin_date_year:age_group7 -8.665e-02  4.526e-01  -0.191  0.84827    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 38.23 on 402 degrees of freedom
  (10 observations deleted due to missingness)
Multiple R-squared:  0.5708,    Adjusted R-squared:  0.5558 
F-statistic: 38.18 on 14 and 402 DF,  p-value: < 2.2e-16
#calculate and interpret effect sizes
eta_squared(corart.lm)
          begin_date_year                 age_group             log_max_depth                   logarea 
              0.001873808               0.515170771               0.009739229               0.005740233 
                      doy begin_date_year:age_group 
              0.029645902               0.008585668 
#interpret(eta_squared(corart.lm), rules = "cohen1992")

#calculate AIC score
AIC(corart.lm)
[1] 4238.8
#examine model fit
testDispersion(corart.lm)

    DHARMa nonparametric dispersion test via sd of residuals fitted vs. simulated

data:  simulationOutput
dispersion = 0.96609, p-value = 0.592
alternative hypothesis: two.sided

simulation.output <- simulateResiduals(fittedModel = corart.lm)

residuals(corart.lm)
           1            2            3            4            5            6            7            8            9 
  -4.6446002  -27.1202323  -71.3642885  -42.5952717  -14.0136740  -32.5933502   24.1166557    6.5002941  -19.1441261 
          10           11           12           13           14           15           16           17           18 
 -34.8480990  -34.3312849  -52.4402374  -67.9950923   29.5056316   33.6215712   22.6149046  -10.8016644  -13.6261705 
          19           20           21           22           23           24           25           26           27 
 -18.4216644    4.4189538    1.5939867  -19.2791131  -23.0783311   -7.7193467   -6.0061705  -21.8083311  -36.2210462 
          28           29           30           31           32           33           34           35           36 
  10.0606533  -58.0958514   79.9218180   69.6036343   20.2903731   -2.5981954   28.4258760  117.0774209   57.5565721 
          37           38           39           40           41           42           43           44           45 
 -16.5681954  -27.7025791   46.1265721  -15.9331954   58.2185407   25.2411420   48.6434597  -28.9563067   33.7516674 
          46           47           48           49           50           51           52           53           54 
  27.6951568   31.3226838   27.0188538    2.2503763    5.5487270  -25.6896237   13.1687270  -43.1013448  -10.4496237 
          55           56           57           58           59           60           61           62           63 
 -24.6970427  -53.0876257  -62.0504611  -80.0382955  -53.2992924  -47.3184611   -7.7911615   -7.7563345  -20.5908275 
          64           65           66           67           68           69           70           71           72 
 -13.5454166   35.3674038   13.6006458   15.2013094   56.0984451  -45.0804044  -24.4735299  -32.0534400  -92.9333593 
          73           74           75           76           77           78           79           80           81 
 -59.4992388  -67.1140655  -86.9769188  -67.2786925  -15.4167833  -25.7374638    3.8157467   -4.0174642  -32.0451633 
          82           83           84           85           86           87           88           89           90 
  15.2101784  -15.3432106  -49.7055419  -62.2757300  -83.2698391  -82.0949619  -17.9532406   -1.3685111  -38.2817969 
          91           92           93           94           95           96           97           98           99 
  29.9174763   93.0926455   87.9217982   73.5408765   69.8135339   15.7141030   20.5897768   23.3093199   23.0699412 
         100          103          104          105          106          107          113          114          115 
  13.2496997    0.7411978   13.2281424    6.5169520    8.3043398    3.1415898   -2.6512956  -15.4683303  -17.5014524 
         116          117          118          119          120          121          122          123          124 
 -10.0684956  -23.2836523   -5.1770287  -25.4394805    8.7420671   14.0547076   -7.6231878   10.7318522    5.4999008 
         125          126          127          128          129          130          131          132          133 
  39.4038448   15.2326863    5.3736435    2.7577128    1.7597251   13.8453166   -0.6522807   26.8537764   58.7776276 
         134          135          136          137          138          139          140          141          142 
 -46.0095766   55.3804065  -43.4667762  -72.7600308   29.3947940   44.4741135   38.4673240   -4.9258869  -12.6335860 
         143          144          145          146          147          148          149          150          151 
  -6.8210732  -22.5144570  -27.6765752  -53.6208724  -54.4419282  -73.1984490  -66.2263903  -45.1589707    1.4510335 
         152          153          154          155          156          157          158          159          160 
 -12.2254872  -10.3334286  -24.8260090  -12.6651439  -16.1576564   15.7258781   17.6179367    8.2053564  -18.2348828 
         161          162          163          164          165          166          167          168          169 
   0.6343691   13.1475012    6.7885112  -10.2044003  -44.5796249    5.6703388   -9.7914457    7.0989894   -9.5160316 
         170          171          172          173          174          175          176          177          178 
 -18.2214932  -51.4458195   34.2466575   44.8531445   22.0045998   19.0066575   44.8531445   13.9847909   -9.0620770 
         179          180          181          182          183          184          185          186          187 
 -10.3410669   -2.3444609   16.5247909    1.0979230  -10.3410669  -12.0939785   29.7779424    4.2172620   -1.7895275 
         188          189          190          191          192          193          194          195          196 
  11.8372620    8.3704725   16.8733488   -1.0847900   -5.6330464   24.4933488    6.5352100    4.5269536  -19.5727244 
         197          198          199          200          201          202          203          204          205 
  16.2993636   -9.2962335  -30.1659569    3.5993636  -11.8362335  -14.9259569  -24.8121020  -40.5148673  -49.2310160 
         206          207          208          209          210          211          212          213          214 
  -2.9172801    5.1598666   14.6980929    7.3980549   15.7566884  -15.9791763    7.8104631    5.2669073   11.5333205 
         215          216          217          218          219          220          221          222          223 
  -2.3016867  -19.4774213  -27.6793581  -36.7339170  -25.8703241    4.4489954   23.6289950    0.2753235    1.5906218 
         224          225          226          227          228          229          230          231          232 
   1.5608786  -10.3049087    9.8803835  -21.9696884    0.5051879   26.3206153   13.6519761   14.4613233   58.5592502 
         233          234          235          236          237          238          239          240          241 
  35.8658130   66.0209821   22.7501348    3.2892132    7.1818706   -2.2257607   35.9889435   66.1441127   22.8732654 
         242          243          244          245          246          247          248          249          250 
   3.4123437    7.3050011   -2.1026301  -41.8748904  -38.6312974  -36.2519779   10.8680217    0.9212326   26.0203225 
         251          252          253          254          255          256          257          258          259 
 -41.5054988  -38.2619058  -35.8825863    1.2906242   -4.0025867   26.3897141   18.2245282   -4.2211557   -6.8696958 
         260          261          262          263          264          265          266          267          268 
   4.0327747    9.1586348  -11.1736501  -32.1179704  122.2447873  146.2468189   86.2318625  -13.1253364  -36.2126739 
         269          270          271          272          273          274          275          276          277 
  -8.1976673   67.4088043   42.3637535    2.0413502  -36.2806287  -27.7165341  -26.5565041   18.5819037   47.9433142 
         278          279          280          281          282          283          284          285          286 
  -4.3177285   -1.7987426   -8.3335426   17.6104379  -10.3069305  -68.9062128   20.0687937   52.7918083   74.0559029 
         287          288          289          290          291          292          293          294          295 
  57.4359328   -9.5970545  -51.6304355  -58.8980775  -59.4181833  -85.6676484  -22.1450168  -30.7664031  -37.9817098 
         296          297          298          299          303          304          305          306          307 
  -8.8767307  -20.9411453  -24.4079348   56.6588542   37.6678478   -7.7342182  -10.4087112   30.5608072   31.8218172 
         308          309          310          311          312          313          314          315          316 
  35.1489057   30.1188043   33.3623972   50.9817168   -8.1950693   -0.7444789   21.9179981   64.3715536  -50.2828540 
         317          318          319          320          321          322          323          324          325 
 -31.8164181  -11.7685380   -4.2570781  -12.0061209   43.8965107   -2.8248756   22.9798178   13.9847968   55.0390336 
         326          327          328          329          330          331          332          333          334 
  60.6630140   53.0656456   34.8282237   13.1546369   47.0923618   47.0099894   44.7850023   -1.8431928  -37.6007158 
         335          336          337          338          339          340          341          342          343 
 -56.1071602   50.7896483   36.5103472    3.5460358   -6.6175200  -43.5311068  143.6282448  151.3283254   80.3051603 
         344          345          346          347          348          349          350          351          352 
  39.7853309   43.7564914   45.7664873   -9.3546425  -16.5530554  -13.6463511   12.2831993   38.2133750  -21.7333261 
         353          354          355          356          357          358          359          360          361 
  13.4935688   44.4402445    1.0035434   31.8053522   32.7199057    7.5630746   51.7777829   47.0669098   -3.1258025 
         362          363          364          365          366          367          368          369          370 
  60.4056911   -1.9606275   -5.9836828    9.6571268   17.0325146   -2.1002354   -2.9278107   22.2678631   27.2880275 
         371          372          373          374          375          376          377          378          379 
  27.6277860   24.9664482   25.6087886   22.4016651   25.7182864   -0.9223995    8.0793177   19.0751819   25.2418679 
         380          381          382          383          384          385          386          387          388 
  20.7691559   12.2189144   10.0805928    9.0295999   16.6598096   11.7051489    2.6131591   12.6667956   17.2191966 
         389          390          391          392          393          394          395          396          397 
  16.9600124   15.1623095   15.3388367  -11.8248571  -30.9348681  -11.5121500   -9.5151429   15.4663616  -62.2817471 
         398          399          400          401          402          403          404          405          406 
 -81.7382885  -45.4176025  -80.5374772 -114.1790139  -64.0739756   16.0957658    5.3318880   15.7337963   -5.1115623 
         407          408          409          410          411          412          413          414          415 
   9.7027565  -91.5140369   10.1184408  -44.1419025  -15.4046897   11.1903608  -28.5269571    4.7559250  -88.1578643 
         416          417          418          419          420          421          422          423          424 
 -44.6288708  -17.0053866  -33.4363679  -24.3882265  -55.6731741  -24.7924850  -32.7128318  -16.8913571  -19.2006155 
         425          426          427 
 -30.2959623  -29.7144876  -53.3794351 
residuals(corart.lm, quantileFunction = qnorm)
           1            2            3            4            5            6            7            8            9 
  -4.6446002  -27.1202323  -71.3642885  -42.5952717  -14.0136740  -32.5933502   24.1166557    6.5002941  -19.1441261 
          10           11           12           13           14           15           16           17           18 
 -34.8480990  -34.3312849  -52.4402374  -67.9950923   29.5056316   33.6215712   22.6149046  -10.8016644  -13.6261705 
          19           20           21           22           23           24           25           26           27 
 -18.4216644    4.4189538    1.5939867  -19.2791131  -23.0783311   -7.7193467   -6.0061705  -21.8083311  -36.2210462 
          28           29           30           31           32           33           34           35           36 
  10.0606533  -58.0958514   79.9218180   69.6036343   20.2903731   -2.5981954   28.4258760  117.0774209   57.5565721 
          37           38           39           40           41           42           43           44           45 
 -16.5681954  -27.7025791   46.1265721  -15.9331954   58.2185407   25.2411420   48.6434597  -28.9563067   33.7516674 
          46           47           48           49           50           51           52           53           54 
  27.6951568   31.3226838   27.0188538    2.2503763    5.5487270  -25.6896237   13.1687270  -43.1013448  -10.4496237 
          55           56           57           58           59           60           61           62           63 
 -24.6970427  -53.0876257  -62.0504611  -80.0382955  -53.2992924  -47.3184611   -7.7911615   -7.7563345  -20.5908275 
          64           65           66           67           68           69           70           71           72 
 -13.5454166   35.3674038   13.6006458   15.2013094   56.0984451  -45.0804044  -24.4735299  -32.0534400  -92.9333593 
          73           74           75           76           77           78           79           80           81 
 -59.4992388  -67.1140655  -86.9769188  -67.2786925  -15.4167833  -25.7374638    3.8157467   -4.0174642  -32.0451633 
          82           83           84           85           86           87           88           89           90 
  15.2101784  -15.3432106  -49.7055419  -62.2757300  -83.2698391  -82.0949619  -17.9532406   -1.3685111  -38.2817969 
          91           92           93           94           95           96           97           98           99 
  29.9174763   93.0926455   87.9217982   73.5408765   69.8135339   15.7141030   20.5897768   23.3093199   23.0699412 
         100          103          104          105          106          107          113          114          115 
  13.2496997    0.7411978   13.2281424    6.5169520    8.3043398    3.1415898   -2.6512956  -15.4683303  -17.5014524 
         116          117          118          119          120          121          122          123          124 
 -10.0684956  -23.2836523   -5.1770287  -25.4394805    8.7420671   14.0547076   -7.6231878   10.7318522    5.4999008 
         125          126          127          128          129          130          131          132          133 
  39.4038448   15.2326863    5.3736435    2.7577128    1.7597251   13.8453166   -0.6522807   26.8537764   58.7776276 
         134          135          136          137          138          139          140          141          142 
 -46.0095766   55.3804065  -43.4667762  -72.7600308   29.3947940   44.4741135   38.4673240   -4.9258869  -12.6335860 
         143          144          145          146          147          148          149          150          151 
  -6.8210732  -22.5144570  -27.6765752  -53.6208724  -54.4419282  -73.1984490  -66.2263903  -45.1589707    1.4510335 
         152          153          154          155          156          157          158          159          160 
 -12.2254872  -10.3334286  -24.8260090  -12.6651439  -16.1576564   15.7258781   17.6179367    8.2053564  -18.2348828 
         161          162          163          164          165          166          167          168          169 
   0.6343691   13.1475012    6.7885112  -10.2044003  -44.5796249    5.6703388   -9.7914457    7.0989894   -9.5160316 
         170          171          172          173          174          175          176          177          178 
 -18.2214932  -51.4458195   34.2466575   44.8531445   22.0045998   19.0066575   44.8531445   13.9847909   -9.0620770 
         179          180          181          182          183          184          185          186          187 
 -10.3410669   -2.3444609   16.5247909    1.0979230  -10.3410669  -12.0939785   29.7779424    4.2172620   -1.7895275 
         188          189          190          191          192          193          194          195          196 
  11.8372620    8.3704725   16.8733488   -1.0847900   -5.6330464   24.4933488    6.5352100    4.5269536  -19.5727244 
         197          198          199          200          201          202          203          204          205 
  16.2993636   -9.2962335  -30.1659569    3.5993636  -11.8362335  -14.9259569  -24.8121020  -40.5148673  -49.2310160 
         206          207          208          209          210          211          212          213          214 
  -2.9172801    5.1598666   14.6980929    7.3980549   15.7566884  -15.9791763    7.8104631    5.2669073   11.5333205 
         215          216          217          218          219          220          221          222          223 
  -2.3016867  -19.4774213  -27.6793581  -36.7339170  -25.8703241    4.4489954   23.6289950    0.2753235    1.5906218 
         224          225          226          227          228          229          230          231          232 
   1.5608786  -10.3049087    9.8803835  -21.9696884    0.5051879   26.3206153   13.6519761   14.4613233   58.5592502 
         233          234          235          236          237          238          239          240          241 
  35.8658130   66.0209821   22.7501348    3.2892132    7.1818706   -2.2257607   35.9889435   66.1441127   22.8732654 
         242          243          244          245          246          247          248          249          250 
   3.4123437    7.3050011   -2.1026301  -41.8748904  -38.6312974  -36.2519779   10.8680217    0.9212326   26.0203225 
         251          252          253          254          255          256          257          258          259 
 -41.5054988  -38.2619058  -35.8825863    1.2906242   -4.0025867   26.3897141   18.2245282   -4.2211557   -6.8696958 
         260          261          262          263          264          265          266          267          268 
   4.0327747    9.1586348  -11.1736501  -32.1179704  122.2447873  146.2468189   86.2318625  -13.1253364  -36.2126739 
         269          270          271          272          273          274          275          276          277 
  -8.1976673   67.4088043   42.3637535    2.0413502  -36.2806287  -27.7165341  -26.5565041   18.5819037   47.9433142 
         278          279          280          281          282          283          284          285          286 
  -4.3177285   -1.7987426   -8.3335426   17.6104379  -10.3069305  -68.9062128   20.0687937   52.7918083   74.0559029 
         287          288          289          290          291          292          293          294          295 
  57.4359328   -9.5970545  -51.6304355  -58.8980775  -59.4181833  -85.6676484  -22.1450168  -30.7664031  -37.9817098 
         296          297          298          299          303          304          305          306          307 
  -8.8767307  -20.9411453  -24.4079348   56.6588542   37.6678478   -7.7342182  -10.4087112   30.5608072   31.8218172 
         308          309          310          311          312          313          314          315          316 
  35.1489057   30.1188043   33.3623972   50.9817168   -8.1950693   -0.7444789   21.9179981   64.3715536  -50.2828540 
         317          318          319          320          321          322          323          324          325 
 -31.8164181  -11.7685380   -4.2570781  -12.0061209   43.8965107   -2.8248756   22.9798178   13.9847968   55.0390336 
         326          327          328          329          330          331          332          333          334 
  60.6630140   53.0656456   34.8282237   13.1546369   47.0923618   47.0099894   44.7850023   -1.8431928  -37.6007158 
         335          336          337          338          339          340          341          342          343 
 -56.1071602   50.7896483   36.5103472    3.5460358   -6.6175200  -43.5311068  143.6282448  151.3283254   80.3051603 
         344          345          346          347          348          349          350          351          352 
  39.7853309   43.7564914   45.7664873   -9.3546425  -16.5530554  -13.6463511   12.2831993   38.2133750  -21.7333261 
         353          354          355          356          357          358          359          360          361 
  13.4935688   44.4402445    1.0035434   31.8053522   32.7199057    7.5630746   51.7777829   47.0669098   -3.1258025 
         362          363          364          365          366          367          368          369          370 
  60.4056911   -1.9606275   -5.9836828    9.6571268   17.0325146   -2.1002354   -2.9278107   22.2678631   27.2880275 
         371          372          373          374          375          376          377          378          379 
  27.6277860   24.9664482   25.6087886   22.4016651   25.7182864   -0.9223995    8.0793177   19.0751819   25.2418679 
         380          381          382          383          384          385          386          387          388 
  20.7691559   12.2189144   10.0805928    9.0295999   16.6598096   11.7051489    2.6131591   12.6667956   17.2191966 
         389          390          391          392          393          394          395          396          397 
  16.9600124   15.1623095   15.3388367  -11.8248571  -30.9348681  -11.5121500   -9.5151429   15.4663616  -62.2817471 
         398          399          400          401          402          403          404          405          406 
 -81.7382885  -45.4176025  -80.5374772 -114.1790139  -64.0739756   16.0957658    5.3318880   15.7337963   -5.1115623 
         407          408          409          410          411          412          413          414          415 
   9.7027565  -91.5140369   10.1184408  -44.1419025  -15.4046897   11.1903608  -28.5269571    4.7559250  -88.1578643 
         416          417          418          419          420          421          422          423          424 
 -44.6288708  -17.0053866  -33.4363679  -24.3882265  -55.6731741  -24.7924850  -32.7128318  -16.8913571  -19.2006155 
         425          426          427 
 -30.2959623  -29.7144876  -53.3794351 
plot(corart.lm)

Post-hoc comparisons

corart.emm <- emmeans(corart.lm, ~ begin_date_year*age_group)
pairs(corart.emm, simple = "age_group")
begin_date_year = 1978:
 contrast                estimate   SE  df t.ratio p.value
 age_group2 - age_group3    -33.7 6.79 402  -4.970  <.0001
 age_group2 - age_group4    -69.4 6.60 402 -10.510  <.0001
 age_group2 - age_group5    -98.7 6.93 402 -14.252  <.0001
 age_group2 - age_group6   -116.1 7.16 402 -16.205  <.0001
 age_group2 - age_group7   -142.0 7.89 402 -17.997  <.0001
 age_group3 - age_group4    -35.6 5.82 402  -6.118  <.0001
 age_group3 - age_group5    -65.0 6.19 402 -10.502  <.0001
 age_group3 - age_group6    -82.3 6.42 402 -12.832  <.0001
 age_group3 - age_group7   -108.2 7.19 402 -15.054  <.0001
 age_group4 - age_group5    -29.4 5.97 402  -4.917  <.0001
 age_group4 - age_group6    -46.7 6.21 402  -7.521  <.0001
 age_group4 - age_group7    -72.6 7.01 402 -10.356  <.0001
 age_group5 - age_group6    -17.4 6.55 402  -2.652  0.0876
 age_group5 - age_group7    -43.2 7.30 402  -5.918  <.0001
 age_group6 - age_group7    -25.9 7.41 402  -3.492  0.0070

P value adjustment: tukey method for comparing a family of 6 estimates 
test(pairs(corart.emm, by = "begin_date_year"), by = NULL, adjust = "mvt")
 contrast                begin_date_year estimate   SE  df t.ratio p.value
 age_group2 - age_group3            1978    -33.7 6.79 402  -4.970  <.0001
 age_group2 - age_group4            1978    -69.4 6.60 402 -10.510  <.0001
 age_group2 - age_group5            1978    -98.7 6.93 402 -14.252  <.0001
 age_group2 - age_group6            1978   -116.1 7.16 402 -16.205  <.0001
 age_group2 - age_group7            1978   -142.0 7.89 402 -17.997  <.0001
 age_group3 - age_group4            1978    -35.6 5.82 402  -6.118  <.0001
 age_group3 - age_group5            1978    -65.0 6.19 402 -10.502  <.0001
 age_group3 - age_group6            1978    -82.3 6.42 402 -12.832  <.0001
 age_group3 - age_group7            1978   -108.2 7.19 402 -15.054  <.0001
 age_group4 - age_group5            1978    -29.4 5.97 402  -4.917  <.0001
 age_group4 - age_group6            1978    -46.7 6.21 402  -7.521  <.0001
 age_group4 - age_group7            1978    -72.6 7.01 402 -10.356  <.0001
 age_group5 - age_group6            1978    -17.4 6.55 402  -2.652  0.0864
 age_group5 - age_group7            1978    -43.2 7.30 402  -5.918  <.0001
 age_group6 - age_group7            1978    -25.9 7.41 402  -3.492  0.0070

P value adjustment: mvt method for 15 tests 
#export tables
# #interpret(eta_squared(corart.lm), rules = "cohen1992") %>%
#   write.csv(file = "Outputs/Tables/corart_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
corart.slopes <- emtrends(corart.lm, ~age_group, var = "begin_date_year")
# Compare estimated slopes to 0
corart.slope.contrasts <- test(corart.slopes) %>% 
  mutate(Species = "Cisco") %>% 
  rename(Age = age_group)

corart.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/corart_emmeans.csv")

Plot raw data

(corart.length.year.plot <- ggplot(data = corart %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)
`geom_smooth()` using formula = 'y ~ x'

Marginal Effects

result <- predict_response(corart.lm, c("begin_date_year", "age_group"))

# plot(result)
# test_predictions(result) %>% 
#   write.csv(file = "Outputs/Tables/corart_pairwise_length_time_slopes.csv", row.names = F)

(corart.marginal.plot <- ggpredict(corart.lm, terms = c("begin_date_year", "age_group")) %>%  
    plot()+
    #stat_poly_eq(use_label("eq"))+
    stat_regline_equation()+
    stat_poly_line()+
    # annotate(geom = "text", label = "y = 1100 + 0.39x", x = 1970, y = 400)+
    # annotate(geom = "text", label = "y = 340 + 0.01x", x = 1970, y = 375)+
    # annotate(geom = "text", label = "y = -740 + 0.55x", x = 1970, y = 350)+
    # annotate(geom = "text", label = "y = 1400 - 0.57x", x = 1980, y = 325)+
    # annotate(geom = "text", label = "y = 860 - 0.29x", x = 1970, y = 310)+
    # annotate(geom = "text", label = "y = 1700 - 0.75x", x = 1970, y = 275)+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(title = NULL,
         y = "Mean Length-at-Age (mm)",
         x = "Year")+
    guides(fill = guide_legend(title = "Age", reverse = T), color = guide_legend(title = "Age", reverse = T))+
    theme_bw()
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/corart_marginal_effects_plot.tiff", 
       corart.marginal.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

White Sucker

Model

#filter data for only Black Crappie, Pomooxis nigromaculatus 
catcom <- all.grow.merge %>% filter(species == "common_white_sucker") %>% 
  filter(age_group %in% c(1, 2, 3, 4, 5), #match age groups in BRTs
         !is.na(age_group), !is.na(begin_date_year), !is.na(length_mean_mm),
         !is.na(log_max_depth), !is.na(logarea))

#linear model
catcom.lm <- lm(length_mean_mm ~ begin_date_year*age_group + log_max_depth + logarea + doy, data = catcom)
summary(catcom.lm)

Call:
lm(formula = length_mean_mm ~ begin_date_year * age_group + log_max_depth + 
    logarea + doy, data = catcom)

Residuals:
     Min       1Q   Median       3Q      Max 
-136.076  -40.473   -4.099   36.093  194.332 

Coefficients:
                             Estimate Std. Error t value Pr(>|t|)    
(Intercept)                 954.51748 1253.60238   0.761    0.447    
begin_date_year              -0.42594    0.63286  -0.673    0.501    
age_group2                 -137.28866 1483.65129  -0.093    0.926    
age_group3                 1349.43170 1391.73491   0.970    0.333    
age_group4                 1052.83341 1406.76845   0.748    0.455    
age_group5                  367.51727 1477.10904   0.249    0.804    
log_max_depth                 2.58566    5.18469   0.499    0.618    
logarea                      -0.63291    2.21353  -0.286    0.775    
doy                           0.35932    0.05293   6.789 5.02e-11 ***
begin_date_year:age_group2    0.12337    0.74995   0.165    0.869    
begin_date_year:age_group3   -0.59078    0.70331  -0.840    0.401    
begin_date_year:age_group4   -0.41167    0.71095  -0.579    0.563    
begin_date_year:age_group5   -0.05380    0.74629  -0.072    0.943    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 55.55 on 342 degrees of freedom
  (9 observations deleted due to missingness)
Multiple R-squared:  0.7168,    Adjusted R-squared:  0.7068 
F-statistic: 72.12 on 12 and 342 DF,  p-value: < 2.2e-16
#calculate and interpret effect sizes
eta_squared(catcom.lm)
          begin_date_year                 age_group             log_max_depth                   logarea 
             0.0329742424              0.6429364232              0.0009600909              0.0002164386 
                      doy begin_date_year:age_group 
             0.0376352415              0.0020282284 
#interpret(eta_squared(catcom.lm), rules = "cohen1992")

#calculate AIC score
AIC(catcom.lm)
[1] 3874.42
#examine model fit
testDispersion(catcom.lm)

    DHARMa nonparametric dispersion test via sd of residuals fitted vs. simulated

data:  simulationOutput
dispersion = 0.96408, p-value = 0.648
alternative hypothesis: two.sided

simulation.output <- simulateResiduals(fittedModel = catcom.lm)

residuals(catcom.lm)
            1             2             3             4             5             6             7             8 
  36.39780836  -47.34506862  -94.17823671  -78.72749364   -6.78219164 -106.28514959  -96.45173528  -81.98623671 
            9            10            11            12            13            14            15            16 
 -60.31249364  -34.72219164 -121.52514959  -48.19173528  -67.08490337  -83.17249364   -2.47173528   55.88706661 
           17            18            19            20            21            22            23            24 
  99.83103320   91.23251225   81.40651849   26.37226156  -10.27192940  -25.51192940  -40.54079825  -84.39374758 
           25            26            27            28            29            30            31            32 
  -4.61176416  -18.58268776   28.24687655   16.31801178   16.57802986    2.06533809  -30.95466191  -27.78562458 
           33            34            35            36            37            38            39            40 
 -13.17466191  -48.64734118   57.94533809  -81.29886990  -50.38345560  -40.40529036  -20.50954728  -74.27195702 
           41            42            43            44            45            46            47            48 
 -40.98545560  -72.68445702  -78.92954728  -57.16886990  -57.49545560  -12.04195702  -22.12221913  -20.38080067 
           49            52            53            54            55            56            57            58 
 -44.51350258   57.64371815   11.34709560   22.44248231   27.11284626    3.67727111   54.76083622   54.68081124 
           59            60            61            62            63            64            65            66 
 -22.28799975  -42.52608285  -13.33808900  -32.34107849   30.90807688   57.10414079   50.55302689   12.29944961 
           67            68            69            70            71            72            73            74 
  -4.36789844  -33.92541880  -24.27406694  -43.79800303  -30.77613326   32.04865579   32.44943021  102.09334496 
           75            76            77            78            79            80            81            82 
   7.78014198    9.81631090   -4.04541770   -0.46885466  -11.32480032   23.77058639  -55.02274161   98.11552979 
           83            84            85            86            87            88            89            90 
  65.17150095   -7.25193601  -76.10788167 -104.01249496   42.54782711   21.69188145   35.78726816  157.39770527 
           91            92            93            94            95            96            97            98 
 108.34353327   97.10312636   53.53213131  133.01529340   25.25820624  -25.60352237   25.97304068    5.11709502 
           99           100           101           102           103           104           105           106 
  26.21248173    8.96964167 -105.89208693  -47.31552388  -44.17146954  -11.68847717   73.94338572    3.92476331 
          107           108           109           110           111           112           113           114 
   4.95375399  136.24456731   65.86553815   -5.26109054   27.04607317   32.15280426  121.19857823  -28.32512101 
          115           116           117           118           119           120           121           122 
 -50.12535913  -83.57382891  -76.82897184  -43.60313301  -61.37130135  -51.88060544  -32.17033194  -68.40554289 
          123           124           125           126           127           128           129           130 
 -37.37239181  -19.74476847   24.49914628  -66.62003617  194.33168062    1.25924795  -14.61298216   24.21426737 
          131           132           133           134           135           136           137           138 
   0.06220349   -8.51391039   38.69817420   63.37274900   11.65310970  133.33114282  114.32411966   88.56024765 
          139           140           141           142           143           144           145           146 
  78.23925172  136.11330484  -39.56943503   29.90034331   58.88038490  -24.65834004    9.54798710 -136.07628073 
          147           148           149           150           151           152           153           154 
 -70.36375658  -25.19559694   35.63013821   57.37192095  -82.24486171  -44.29723837   30.42667638   74.68162289 
          155           156           157           158           159           160           161           165 
  54.76239731   65.98631206  -82.41276703   73.26291051  -55.51596369  -54.09418095   51.94819653   -7.82323365 
          166           167           168           169           170           171           172           173 
 -22.85739481   29.72225592   28.53732483   34.41338874   20.24227483   18.66141735   56.23072339   49.40678731 
          174           175           176           177           178           179           180           181 
   1.70408777    2.77297386   -3.88788362  -33.47668707  -51.63437453  -21.78660463  -48.29950303  -79.64462454 
          182           183           184           185           186           187           188           189 
  14.00349119  -21.93419627  -22.56642637   24.58067523   21.17555372  -42.03795085  -27.17563831  -43.04786841 
          190           191           192           193           194           195           196           197 
 -23.84076681  -14.54588832  -26.53756806  -26.91525552  -50.40748562    1.81961598  -16.82550552  -20.47442385 
          198           199           200           201           202           203           204           205 
 -33.67548189  -69.15356499  -32.34557114  -25.94856063   40.84286036  -20.45747575    2.67661981   42.88815004 
          206           207           208           209           210           211           212           213 
  39.47300710  -26.36115406  -23.95014434   89.92138589   30.83208179   96.36297655   44.29027463   41.41879022 
          214           215           216           217           218           219           220           221 
  53.84703232    4.54170961   42.79730171    6.54760180   14.15791258    9.93490539   23.07317679  -20.35026016 
          222           223           224           225           226           227           228           229 
 -48.20620582  -41.11081912   67.35632611   30.95964715   58.42206319   84.56522528   28.56784476   59.11908372 
          230           231           232           233           234           235           236           237 
 -96.27060822  -10.31308950  -64.69895849  -75.28742827   53.56019235   70.78835199   57.92735606   52.87408715 
          238           239           240           241           242           243           244           245 
  -8.88437372  -19.71958467  -24.24643359   -8.09489550   73.81564488   35.16380452    7.06280859   47.72953968 
          246           247           248           249           250           251           252           257 
   5.97132242  141.35137435   49.35953399  115.23853806   76.24909758  -20.70899154  -11.27118295    5.85140676 
          258           259           260           261           262           263           264           265 
  14.54029286   78.99943538  -39.46099104  -80.49760405 -102.94046390  -47.05951794 -101.59334376  -52.96975601 
          266           267           268           269           270           271           272           273 
 -42.80881005    0.36542954  -42.81457046  -49.08263587  171.29855741  -10.76638380   -4.72724128  -39.34453979 
          274           275           276           277           278           279           280           281 
 -67.83638015  -50.21737608   61.96570839   67.48083272   -4.07429161   -6.17916728   28.58666073   78.33820077 
          282           283           284           285           286           287           288           289 
  96.46637954   20.12238807   49.53824469   38.50016585   37.37120737   59.89972296   63.75578777   75.16372389 
          290           291           292           293           294           295           296           297 
  -5.76855147   58.13430099   38.44819732   37.89635696  -28.30463897   68.32563623   14.31042528    9.78357636 
          298           299           300           301           302           303           304           305 
 -79.26880031   29.10367012   65.13585025   10.38971934   27.29928568  -33.06416849  -39.29291461   38.64850386 
          306           307           308           309           310           311           312           313 
   4.35580195  -21.37568247  -15.58963570  -50.21947636    6.21367472   -4.09870194   17.28521281  -54.10697544 
          314           315           316           317           318           319           320           321 
 -44.86892756  -75.90748247  -43.39807463  -48.12989586  -50.58991091   42.83824873    9.65725280   -3.01601611 
          322           323           324           325           326           327           328           329 
  18.72576663  -49.52131606   25.66696981   27.05901864   13.82982452  -16.23263675  -37.83413030  -26.32862696 
          330           331           332           333           334           335           336           337 
 -23.41867254  -51.71799609   32.50187010  -42.28727405  -26.44484138  -53.43128074  -29.57174449  -47.42617372 
          338           339           340           341           342           343           344           345 
 -29.81346790 -120.72067497  -18.76843821   43.20995471   40.40372298   37.76375275   67.53895827  -29.01929363 
          346           347           348           349           350           351           352           353 
 -87.08533405  -50.43845646   -1.28867811   -4.07407025  -44.02444667   41.28660620 -119.89950021  -24.09814730 
          354           355           356           357           358           359           360           361 
  33.43041218   39.46955470  -31.70598893  -11.89451258  -50.40722573  -62.03783612  -32.73254927  -10.01845623 
          362           363           364 
 -29.00554218   -0.72292191  -74.90840671 
residuals(catcom.lm, quantileFunction = qnorm)
            1             2             3             4             5             6             7             8 
  36.39780836  -47.34506862  -94.17823671  -78.72749364   -6.78219164 -106.28514959  -96.45173528  -81.98623671 
            9            10            11            12            13            14            15            16 
 -60.31249364  -34.72219164 -121.52514959  -48.19173528  -67.08490337  -83.17249364   -2.47173528   55.88706661 
           17            18            19            20            21            22            23            24 
  99.83103320   91.23251225   81.40651849   26.37226156  -10.27192940  -25.51192940  -40.54079825  -84.39374758 
           25            26            27            28            29            30            31            32 
  -4.61176416  -18.58268776   28.24687655   16.31801178   16.57802986    2.06533809  -30.95466191  -27.78562458 
           33            34            35            36            37            38            39            40 
 -13.17466191  -48.64734118   57.94533809  -81.29886990  -50.38345560  -40.40529036  -20.50954728  -74.27195702 
           41            42            43            44            45            46            47            48 
 -40.98545560  -72.68445702  -78.92954728  -57.16886990  -57.49545560  -12.04195702  -22.12221913  -20.38080067 
           49            52            53            54            55            56            57            58 
 -44.51350258   57.64371815   11.34709560   22.44248231   27.11284626    3.67727111   54.76083622   54.68081124 
           59            60            61            62            63            64            65            66 
 -22.28799975  -42.52608285  -13.33808900  -32.34107849   30.90807688   57.10414079   50.55302689   12.29944961 
           67            68            69            70            71            72            73            74 
  -4.36789844  -33.92541880  -24.27406694  -43.79800303  -30.77613326   32.04865579   32.44943021  102.09334496 
           75            76            77            78            79            80            81            82 
   7.78014198    9.81631090   -4.04541770   -0.46885466  -11.32480032   23.77058639  -55.02274161   98.11552979 
           83            84            85            86            87            88            89            90 
  65.17150095   -7.25193601  -76.10788167 -104.01249496   42.54782711   21.69188145   35.78726816  157.39770527 
           91            92            93            94            95            96            97            98 
 108.34353327   97.10312636   53.53213131  133.01529340   25.25820624  -25.60352237   25.97304068    5.11709502 
           99           100           101           102           103           104           105           106 
  26.21248173    8.96964167 -105.89208693  -47.31552388  -44.17146954  -11.68847717   73.94338572    3.92476331 
          107           108           109           110           111           112           113           114 
   4.95375399  136.24456731   65.86553815   -5.26109054   27.04607317   32.15280426  121.19857823  -28.32512101 
          115           116           117           118           119           120           121           122 
 -50.12535913  -83.57382891  -76.82897184  -43.60313301  -61.37130135  -51.88060544  -32.17033194  -68.40554289 
          123           124           125           126           127           128           129           130 
 -37.37239181  -19.74476847   24.49914628  -66.62003617  194.33168062    1.25924795  -14.61298216   24.21426737 
          131           132           133           134           135           136           137           138 
   0.06220349   -8.51391039   38.69817420   63.37274900   11.65310970  133.33114282  114.32411966   88.56024765 
          139           140           141           142           143           144           145           146 
  78.23925172  136.11330484  -39.56943503   29.90034331   58.88038490  -24.65834004    9.54798710 -136.07628073 
          147           148           149           150           151           152           153           154 
 -70.36375658  -25.19559694   35.63013821   57.37192095  -82.24486171  -44.29723837   30.42667638   74.68162289 
          155           156           157           158           159           160           161           165 
  54.76239731   65.98631206  -82.41276703   73.26291051  -55.51596369  -54.09418095   51.94819653   -7.82323365 
          166           167           168           169           170           171           172           173 
 -22.85739481   29.72225592   28.53732483   34.41338874   20.24227483   18.66141735   56.23072339   49.40678731 
          174           175           176           177           178           179           180           181 
   1.70408777    2.77297386   -3.88788362  -33.47668707  -51.63437453  -21.78660463  -48.29950303  -79.64462454 
          182           183           184           185           186           187           188           189 
  14.00349119  -21.93419627  -22.56642637   24.58067523   21.17555372  -42.03795085  -27.17563831  -43.04786841 
          190           191           192           193           194           195           196           197 
 -23.84076681  -14.54588832  -26.53756806  -26.91525552  -50.40748562    1.81961598  -16.82550552  -20.47442385 
          198           199           200           201           202           203           204           205 
 -33.67548189  -69.15356499  -32.34557114  -25.94856063   40.84286036  -20.45747575    2.67661981   42.88815004 
          206           207           208           209           210           211           212           213 
  39.47300710  -26.36115406  -23.95014434   89.92138589   30.83208179   96.36297655   44.29027463   41.41879022 
          214           215           216           217           218           219           220           221 
  53.84703232    4.54170961   42.79730171    6.54760180   14.15791258    9.93490539   23.07317679  -20.35026016 
          222           223           224           225           226           227           228           229 
 -48.20620582  -41.11081912   67.35632611   30.95964715   58.42206319   84.56522528   28.56784476   59.11908372 
          230           231           232           233           234           235           236           237 
 -96.27060822  -10.31308950  -64.69895849  -75.28742827   53.56019235   70.78835199   57.92735606   52.87408715 
          238           239           240           241           242           243           244           245 
  -8.88437372  -19.71958467  -24.24643359   -8.09489550   73.81564488   35.16380452    7.06280859   47.72953968 
          246           247           248           249           250           251           252           257 
   5.97132242  141.35137435   49.35953399  115.23853806   76.24909758  -20.70899154  -11.27118295    5.85140676 
          258           259           260           261           262           263           264           265 
  14.54029286   78.99943538  -39.46099104  -80.49760405 -102.94046390  -47.05951794 -101.59334376  -52.96975601 
          266           267           268           269           270           271           272           273 
 -42.80881005    0.36542954  -42.81457046  -49.08263587  171.29855741  -10.76638380   -4.72724128  -39.34453979 
          274           275           276           277           278           279           280           281 
 -67.83638015  -50.21737608   61.96570839   67.48083272   -4.07429161   -6.17916728   28.58666073   78.33820077 
          282           283           284           285           286           287           288           289 
  96.46637954   20.12238807   49.53824469   38.50016585   37.37120737   59.89972296   63.75578777   75.16372389 
          290           291           292           293           294           295           296           297 
  -5.76855147   58.13430099   38.44819732   37.89635696  -28.30463897   68.32563623   14.31042528    9.78357636 
          298           299           300           301           302           303           304           305 
 -79.26880031   29.10367012   65.13585025   10.38971934   27.29928568  -33.06416849  -39.29291461   38.64850386 
          306           307           308           309           310           311           312           313 
   4.35580195  -21.37568247  -15.58963570  -50.21947636    6.21367472   -4.09870194   17.28521281  -54.10697544 
          314           315           316           317           318           319           320           321 
 -44.86892756  -75.90748247  -43.39807463  -48.12989586  -50.58991091   42.83824873    9.65725280   -3.01601611 
          322           323           324           325           326           327           328           329 
  18.72576663  -49.52131606   25.66696981   27.05901864   13.82982452  -16.23263675  -37.83413030  -26.32862696 
          330           331           332           333           334           335           336           337 
 -23.41867254  -51.71799609   32.50187010  -42.28727405  -26.44484138  -53.43128074  -29.57174449  -47.42617372 
          338           339           340           341           342           343           344           345 
 -29.81346790 -120.72067497  -18.76843821   43.20995471   40.40372298   37.76375275   67.53895827  -29.01929363 
          346           347           348           349           350           351           352           353 
 -87.08533405  -50.43845646   -1.28867811   -4.07407025  -44.02444667   41.28660620 -119.89950021  -24.09814730 
          354           355           356           357           358           359           360           361 
  33.43041218   39.46955470  -31.70598893  -11.89451258  -50.40722573  -62.03783612  -32.73254927  -10.01845623 
          362           363           364 
 -29.00554218   -0.72292191  -74.90840671 
plot(catcom.lm)

Post-hoc comparisons

catcom.emm <- emmeans(catcom.lm, ~ begin_date_year*age_group)
pairs(catcom.emm, simple = "age_group")
begin_date_year = 1979:
 contrast                estimate    SE  df t.ratio p.value
 age_group1 - age_group2   -106.8 10.50 342 -10.192  <.0001
 age_group1 - age_group3   -180.5 10.10 342 -17.827  <.0001
 age_group1 - age_group4   -238.3 10.30 342 -23.125  <.0001
 age_group1 - age_group5   -261.1 11.10 342 -23.524  <.0001
 age_group2 - age_group3    -73.7  8.61 342  -8.551  <.0001
 age_group2 - age_group4   -131.5  8.84 342 -14.864  <.0001
 age_group2 - age_group5   -154.2  9.77 342 -15.781  <.0001
 age_group3 - age_group4    -57.8  8.40 342  -6.882  <.0001
 age_group3 - age_group5    -80.6  9.39 342  -8.584  <.0001
 age_group4 - age_group5    -22.8  9.56 342  -2.384  0.1221

P value adjustment: tukey method for comparing a family of 5 estimates 
test(pairs(catcom.emm, by = "begin_date_year"), by = NULL, adjust = "mvt")
 contrast                begin_date_year estimate    SE  df t.ratio p.value
 age_group1 - age_group2            1979   -106.8 10.50 342 -10.192  <.0001
 age_group1 - age_group3            1979   -180.5 10.10 342 -17.827  <.0001
 age_group1 - age_group4            1979   -238.3 10.30 342 -23.125  <.0001
 age_group1 - age_group5            1979   -261.1 11.10 342 -23.524  <.0001
 age_group2 - age_group3            1979    -73.7  8.61 342  -8.551  <.0001
 age_group2 - age_group4            1979   -131.5  8.84 342 -14.864  <.0001
 age_group2 - age_group5            1979   -154.2  9.77 342 -15.781  <.0001
 age_group3 - age_group4            1979    -57.8  8.40 342  -6.882  <.0001
 age_group3 - age_group5            1979    -80.6  9.39 342  -8.584  <.0001
 age_group4 - age_group5            1979    -22.8  9.56 342  -2.384  0.1209

P value adjustment: mvt method for 10 tests 
#export tables
# #interpret(eta_squared(catcom.lm), rules = "cohen1992") %>%
#   write.csv(file = "Outputs/Tables/catcom_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
catcom.slopes <- emtrends(catcom.lm, ~age_group, var = "begin_date_year")
# Compare estimated slopes to 0
catcom.slope.contrasts <- test(catcom.slopes) %>% 
  mutate(Species = "White Sucker") %>% 
  rename(Age = age_group)

catcom.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/catcom_emmeans.csv")

Plot raw data

(catcom.length.year.plot <- ggplot(data = catcom %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)
`geom_smooth()` using formula = 'y ~ x'

Marginal Effects

result <- predict_response(catcom.lm, c("begin_date_year", "age_group"))

# plot(result)
# test_predictions(result) %>% 
#   write.csv(file = "Outputs/Tables/catcom_pairwise_length_time_slopes.csv", row.names = F)

(catcom.marginal.plot <- ggpredict(catcom.lm, terms = c("begin_date_year", "age_group")) %>%  
    plot()+
    #stat_poly_eq(use_label("eq"))+
    stat_regline_equation()+
    stat_poly_line()+
    # annotate(geom = "text", label = "y = 2400 - 0.99x", x = 2000, y = 450)+
    # annotate(geom = "text", label = "y = 4300 - 2x", x = 2000, y = 400)+
    # annotate(geom = "text", label = "y = 4300 - 2x", x = 2000, y = 350)+
    # annotate(geom = "text", label = "y = 3700 - 1.7x", x = 2000, y = 300)+
    # annotate(geom = "text", label = "y = 2600 - 1.2x", x = 2000, y = 200)+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(title = NULL,
         y = "Mean Length-at-Age (mm)",
         x = "Year")+
    guides(fill = guide_legend(title = "Age", reverse = T), color = guide_legend(title = "Age", reverse = T))+
    theme_bw()
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/catcom_marginal_effects_plot.tiff", 
       catcom.marginal.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

Largemouth Bass

Model

#filter data for only Black Crappie, Pomooxis nigromaculatus 
micsal <- all.grow.merge %>% filter(species == "largemouth_bass") %>% 
  filter(!age_group %in% c(13, 14, 15, 16, 17, 18, 19, 20, 21, 22), #match age groups in BRTs
         !is.na(age_group), !is.na(begin_date_year), !is.na(length_mean_mm),
         !is.na(log_max_depth), !is.na(logarea))

#linear model
micsal.lm <- lm(length_mean_mm ~ begin_date_year*age_group + log_max_depth + logarea + doy, data = micsal)
summary(micsal.lm)

Call:
lm(formula = length_mean_mm ~ begin_date_year * age_group + log_max_depth + 
    logarea + doy, data = micsal)

Residuals:
     Min       1Q   Median       3Q      Max 
-208.506  -23.871   -0.299   22.941  279.766 

Coefficients:
                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                 1163.65056  323.33490   3.599 0.000321 ***
begin_date_year               -0.57105    0.16302  -3.503 0.000462 ***
age_group1                   523.22747  351.71109   1.488 0.136873    
age_group2                    25.36943  342.49966   0.074 0.940955    
age_group3                  -220.91353  340.51620  -0.649 0.516509    
age_group4                  -375.25423  344.59940  -1.089 0.276200    
age_group5                  -225.09329  351.34976  -0.641 0.521764    
age_group6                   246.59435  360.32332   0.684 0.493759    
age_group7                   778.71599  373.32510   2.086 0.037015 *  
age_group8                   857.37930  397.10066   2.159 0.030868 *  
age_group9                   892.42675  428.32799   2.084 0.037231 *  
age_group10                  501.54486  469.29233   1.069 0.285220    
age_group11                  158.22737  588.50719   0.269 0.788042    
age_group12                  470.82810  727.77331   0.647 0.517684    
log_max_depth                 -4.93491    0.61810  -7.984 1.58e-15 ***
logarea                        4.67034    0.32431  14.401  < 2e-16 ***
doy                            0.18877    0.00796  23.715  < 2e-16 ***
begin_date_year:age_group1    -0.23044    0.17735  -1.299 0.193866    
begin_date_year:age_group2     0.05329    0.17271   0.309 0.757651    
begin_date_year:age_group3     0.20504    0.17170   1.194 0.232438    
begin_date_year:age_group4     0.30473    0.17372   1.754 0.079443 .  
begin_date_year:age_group5     0.24796    0.17707   1.400 0.161436    
begin_date_year:age_group6     0.02756    0.18151   0.152 0.879309    
begin_date_year:age_group7    -0.22285    0.18797  -1.186 0.235819    
begin_date_year:age_group8    -0.24770    0.19975  -1.240 0.214980    
begin_date_year:age_group9    -0.25201    0.21531  -1.170 0.241860    
begin_date_year:age_group10   -0.04807    0.23572  -0.204 0.838427    
begin_date_year:age_group11    0.13175    0.29496   0.447 0.655112    
begin_date_year:age_group12   -0.02166    0.36425  -0.059 0.952591    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 37.61 on 9471 degrees of freedom
  (83 observations deleted due to missingness)
Multiple R-squared:  0.8681,    Adjusted R-squared:  0.8677 
F-statistic:  2226 on 28 and 9471 DF,  p-value: < 2.2e-16
#calculate and interpret effect sizes
eta_squared(micsal.lm)
          begin_date_year                 age_group             log_max_depth                   logarea 
             0.0135893748              0.8422010566              0.0006643162              0.0028253074 
                      doy begin_date_year:age_group 
             0.0078359130              0.0009653792 
#interpret(eta_squared(micsal.lm), rules = "cohen1992")

#calculate AIC score
AIC(micsal.lm)
[1] 95910.58
#examine model fit
testDispersion(micsal.lm)

    DHARMa nonparametric dispersion test via sd of residuals fitted vs. simulated

data:  simulationOutput
dispersion = 0.99711, p-value = 0.84
alternative hypothesis: two.sided

simulation.output <- simulateResiduals(fittedModel = micsal.lm)

residuals(micsal.lm)
            1             2             3             4             5             6             7             8 
  38.93612888    9.20776915  -14.96687046  -37.85977549  -36.76913522   54.60893178  -26.10210871   10.54031971 
            9            10            11            12            13            14            15            16 
   6.37846240   -7.31253535   -4.96033152   -3.01429604    3.94751852   -2.22769917   38.26429975  -26.50664027 
           17            18            19            20            21            22            23            24 
   2.64120552   -7.98832502  -20.30726154  -12.08736931  -15.43693848   22.29383677    9.42320559   26.12168682 
           25            26            27            28            29            30            31            32 
 -31.53391351  -46.96076642  -53.40044697  -38.13686857  -68.92921581  -31.80627381    1.26451449  -16.32803455 
           33            34            35            36            37            38            39            40 
 -11.87188997  -20.40278738  -18.01940219   24.85925059  -20.83717101  -47.81951825  -43.91968117  -31.94420668 
           41            42            43            44            45            46            47            48 
 -59.02847220  -85.62252254  -69.19238438   40.56531653  -14.47511674  -42.53488034  -29.58390777  -23.66115328 
           49            50            51            52            53            54            55            56 
  18.78654762   -7.89055231  -37.98231591  -14.88006034  -75.47789050    1.19004909   -4.69672819  -21.63716145 
           57            58            59            60            61            62            63            64 
 -70.01692506  -53.39166949  -60.45653133   13.91820882   18.08163862   92.45479404   89.02348775   19.56391606 
           65            66            67            68            69            70            71            72 
   3.55374694  -31.07040965   38.03471885   -0.76281224  -20.11140077  -30.34038404   55.24725623    9.02637825 
           73            74            75            76            77            78            79            80 
 -26.78438404  -30.17794745  -26.12300048  -22.63214702    3.55570993  -32.75754999  -83.13658336    7.52514488 
           81            82            83            84            85            86            87            88 
  25.94699952   18.64285298    9.90570993  -39.10754999    0.85759552  -12.99966715    0.22785298   -6.60429007 
           89            90            91            92            93            94            95            96 
  10.42245001   52.25646905   16.09759552   -7.07300048  -75.97214702  -28.94754999  -83.13658336    3.72430162 
           97            98            99           100           101           102           103           104 
  -8.65129439  -15.32044092  -15.80258397   16.46415611   84.19512274    7.21685098    1.14817515   15.61928598 
          105           106           107           108           109           110           111           112 
  -8.07395305   14.13097481  -81.77149480  -68.86063240    2.02427805   48.23220591   -1.15498533   10.69219807 
          113           114           115           116           117           118           119           120 
 -25.86940131   -0.83149085  -43.39656300   53.59652184  -44.37239170    5.81990461   -3.56994531  -14.89041492 
          121           122           123           124           125           126           127           128 
 -14.61152714  -43.30513655  -77.17795315   52.24200327  -53.78887347   26.68315530   -1.47629977   26.68315530 
          129           130           131           132           133           134           135           136 
   1.06370023  -14.24832108   -3.34442480   -1.87469081   -2.36799673   25.41315530   -5.53981590   41.04385574 
          137           138           139           140           141           142           143           144 
 -33.80367735   -8.43251398   17.32018410  -38.33114426  -14.75367735  -37.65338036  -33.70868564  -39.76491402 
          145           146           147           148           149           150           151           152 
 -18.23981590  -35.79114426    5.53748602    6.83632265  -27.49338036   -5.76868564   -6.32332287   -9.81322807 
          153           154           155           156           157           158           159           160 
  -9.10006787  -13.81142199  -31.71118559  -43.31354635   24.91906998  -33.58079186   12.58123982    6.50394829 
          161           162           163           164           165           166           167           168 
  18.35046962   36.14756254  -12.54142199  -52.03118559   24.84312032  -40.75876018  -41.74432206  -19.90742199 
          169           170           171           172           173           174           175           176 
 -22.82118559  -24.68687968  -28.42093002   43.88920814  -20.43876018  -16.35605171  -24.48046145  -22.20586052 
          177           178           179           180           181           182           183           184 
 -10.88065275  -20.46261416  -17.91354635  -34.77093002  -37.39079186   66.61046962   10.43078439   10.36588251 
          185           186           187           188           189           190           191           192 
  36.62955415  -31.70753241  -43.85299011  -23.29378241  -19.12729602   17.61500989    9.56295956    2.30512940 
          193           194           195           196           197           198           199           200 
 -40.18564080  -21.11854788  -16.72153241    8.81270398  -24.80299011   -1.86704044  -19.09190228 -147.28216213 
          201           202           203           204           205           206           207           208 
 -18.57854788  -27.89753241  -20.39729602  -34.88704044   -8.29690228   -9.12487060  -26.19854788  -29.67657187 
          209           210           211           212           213           214           215           216 
  -2.49043248  -29.59086574   -6.42729602  -54.01299011  -53.61034728  -28.43883097    1.24955422  -15.24429300 
          217           218           219           220           221           222           223           224 
 -11.34721460    2.14110483  -54.29261984    3.10424154   20.63320700  -48.23556184  -38.41740239  -11.95844578 
          225           226           227           228           229           230           231           232 
 -39.81879300  -11.09321460  -13.94556184  -13.40575846  -31.61383097  -27.70644578  -28.47345966  -11.09321460 
          233           234           235           236           237           238           239           240 
 -31.43261984  -11.92883097  -50.48679300   12.72443816   14.28738016   19.59777143   38.24801650   -5.71396310 
          241           242           243           244           245           246           247           248 
 -30.67343757  -53.39204926  -61.80366408   -2.06878013  -23.36523200  -33.17642869  -51.94796102  -61.99243298 
          249           250           251           252           253           254           255           256 
  15.42922878    0.36578767    0.64478992  -38.27800625  -40.35363743  -40.16515620    5.25701877   -5.89397898 
          257           258           259           260           261           262           263           264 
 -63.40240633  -65.15580947  -44.87352046  -12.04164236   27.92824987   14.68445595   12.60882477  -25.36285707 
          265           266           267           268           269           270           271           272 
  -9.10679358   -9.83462862   -0.39623243  -22.38569527  -21.28632645  -33.16284523  -48.06020667    9.34527041 
          273           274           275           276           277           278           279           280 
   9.30755942   -1.00825215  -11.44693737   26.86093920   22.31163199   35.99607533   42.43913259  -23.18368401 
          281           282           283           284           285           286           287           288 
  21.08209370   39.95478665  -18.52131165  103.99858057   30.33858057   53.11915547   65.81915547   14.28027526 
          289           290           291           292           293           294           295           296 
 -33.18759343  -16.48702995   11.31202895   33.60436453   32.78156836   48.48593718   18.27323574   13.52688852 
          297           298           299           300           301           302           303           304 
 -24.11514945    3.03323574   14.37355519   14.80106168   54.41792306  -15.23588568    6.36485055   -6.87276426 
          305           306           307           308           309           310           311           312 
  -8.38061148    5.08380025   30.04106168  -14.16207694  -10.15588568    9.77184998  -30.90388224  -35.90426292 
          313           314           315           316           317           318           319           320 
 -45.50350805   33.56096089   26.52852870   49.60990766  -15.66388224  -56.22426292  -34.07350805    6.89972161 
          321           322           323           324           325           326           327           328 
 -11.85388224  -31.67092958  -26.45350805  -33.16834881  -38.43670399   27.21972161  -23.28388224  -32.34826292 
          329           330           331           332           333           334           335           336 
 -55.66350805    2.11611776  -35.90426292  -64.55350805  -35.70834881    9.82329601   -8.81009234   -8.15387983 
          337           338           339           340           341           342           343           344 
   5.55589477  -22.63868555   51.17463619  -56.92868555  -35.08410523   33.36669731  -22.38410523   38.32131445 
          345           346           347           348           349           350           351           352 
 -30.10536381   57.49669731  -11.34340092  -93.50410523  -47.61535222   54.98463619   66.38669731   29.29659908 
          353           354           355           356           357           358           359           360 
  -1.40046471  -13.03044249  -40.77046471   49.40022130   13.53061744   -2.41564800  -26.19693187  -34.68389407 
          361           362           363           364           365           366           367           368 
 -21.36792443 -120.12506102   -3.02613314   16.05221339   -1.60044249   -0.31120727  -18.30404923  -70.64693187 
          369           370           371           372           373           374           375           376 
 -13.03259968   48.82298274   58.63013186   52.16686416   49.17997551   23.41742753   20.62924546   59.82964941 
          377           378           379           380           381           382           383           384 
   0.57444246   -2.44926635    3.94964941  -13.96291279  -12.82437571  -68.13639426  -20.54893601   28.83661844 
          385           386           387           388           389           390           391           392 
 -41.34365764   24.51441129  -11.95927394  -22.06237638  -30.41181569   -3.03959457   19.48397942   59.12238004 
          393           394           395           396           397           398           399           400 
 -10.45470951    4.95941541   38.25830319   21.41802712   18.53321052   -0.03046571   -9.57968169  -17.66981127 
          401           402           403           404           405           406           407           408 
  17.36229508   18.48784953   62.60757346  -89.87104658  -12.65562691  109.41769484   -5.25841107   90.24640563 
          409           410           411           412           413           414           415           416 
 -21.16487823  -10.60184043  -31.92841107  -44.62841107  -54.98838885   67.38640563   -8.46487823  -16.18355280 
          417           418           419           420           421           422           423           424 
 -34.53140861  -33.49003722   -8.27878514    7.89997889   -5.49435642  -12.37563881  -13.38585389    4.66049320 
          425           426           427           428           429           430           431           432 
 -30.34295113   26.39780720    7.33572726   11.02798195  -12.95622223   28.30172460   60.09400732   53.47213564 
          433           434           435           436           437           438           439           440 
  30.92792258    6.52151862  -22.73527763   21.43603715   -0.06450461  -13.67095015  -12.73122623  -37.44564221 
          441           442           443           444           445           446           447           448 
 -59.51848138    1.92388904   11.48770381   11.25596500   10.77282873   -6.05095015   34.87645343  -31.32239453 
          449           450           451           452           453           454           455           456 
   1.47815039    9.02612909   23.46300905   -9.22076817  -24.79699095   24.71645343   -0.84239453  -12.91518294 
          457           458           459           460           461           462           463           464 
   9.19423183    3.77557670   33.57946242  -30.12595493    5.24312010   16.93760547    3.38315039   -6.68076817 
          465           466           467           468           469           470           471           472 
 -41.94442330   53.94300905    3.60232331  -19.59169720  -40.60454307  -41.48584835  -91.75839078  -16.11523058 
          473           474           475           476           477           478           479           480 
  30.18383229  -27.73007673    6.49502139  -22.55686252  -37.03767669  -51.23284005   37.88145693  -23.12130697 
          481           482           483           484           485           486           487           488 
 -40.42434336  -37.00884005  -81.49854307  -35.00884835  -16.11523058  -24.33767669  -26.21384005  -56.09854307 
          489           490           491           492           493           494           495           496 
 -67.39384835  -91.75839078  -24.17407673    9.03502139  -35.82130697  -59.89767669  -57.62254307   30.18383229 
          497           498           499           500           501           502           503           504 
   0.76301898   60.98980727    9.00356051   27.13597235  -19.95491516   17.25856051    5.84301898  -24.50866009 
          505           506           507           508           509           510           511           512 
  33.55780727   17.53070337   27.77097235    9.90805995  -44.95698102   82.32396347  -24.27656711   18.41972409 
          513           514           515           516           517           518           519           520 
 -36.14136016  -58.79014541  -13.28136016  -56.29758204  -15.82136016  -28.35758204  -32.16176411  -13.43959285 
          521           522           523           524           525           526           527           528 
 -20.36960689  -25.59041128   31.35961094   16.32027473  -16.24732913   25.64461094  -31.21469699   11.46294427 
          529           530           531           532           533           534           535           536 
  55.69027473   24.39267087   23.77107209   11.39949269  -17.96942782  -21.54641365  -37.25510774  -36.92515807 
          537           538           539           540           541           542           543           544 
 -73.13898823  -18.56018255   22.01791208  -32.59918784    0.04704855   44.15535446  -20.53869588   14.39791208 
          545           546           547           548           549           550           551           552 
 -36.40918784  -59.98464554  -73.87869588   -1.56855772  -24.55020332  -19.52386999  -34.41869214  -34.57233053 
          553           554           555           556           557           558           559           560 
  25.63290587   31.46316144   17.41329960   28.28803975   42.67456108  -22.82014540  117.56145036   -4.18087562 
          561           562           563           564           565           566           567           568 
 -41.92344282  -34.39312336   41.83045503   47.13791117    1.12200470  -12.83080310  -40.96808146  -48.75216686 
          569           570           571           572           573           574           575           576 
 -82.65871015  -39.87846509   34.20518231   -0.23266197  -30.55408146  -41.17204349   10.66045348    3.19821082 
          577           578           579           580           581           582           583           584 
 -11.18804320  -30.87981541  -24.47241364   33.88738134    4.49188205   27.25062347  -28.52811795    1.35783801 
          585           586           587           588           589           590           591           592 
  -9.95719441  -16.15248301   -8.53248301   13.44039552   -5.00027888  -17.48356583  -26.07613797  -15.61610758 
          593           594           595           596           597           598           599           600 
 -26.17455313  -10.97478193   -3.15786809   -9.53808435  -23.97821394  -70.82356583  -32.74363797   22.61692168 
          601           602           603           604           605           606           607           608 
  17.93178606  -18.75356583  -34.64863797  -39.74610758  -33.96388646   -0.85082920   14.62213191   -4.92821394 
          609           610           611           612           613           614           615           616 
 -20.65856583  -45.44363797  -47.78944091  -37.35055313  -21.17082920    1.72521807   18.59627518    9.90693898 
          617           618           619           620           621           622           623           624 
  -6.65866489  -24.63693033  -11.58821419  -49.48755502  -35.35400732  -17.01134894  -26.98920235   10.31150110 
          625           626           627           628           629           630           631           632 
 -16.43919367  -43.51738066  -59.61852438  -37.70927011  -24.20597774  -23.97182348   20.20746675    3.01858811 
          633           634           635           636           637           638           639           640 
 -50.99278733  -30.30077666  -50.08470600  -62.84985253  -68.49666225  -79.21639835  -38.94162221  -41.20156063 
          641           642           643           644           645           646           647           648 
 -54.67856980    6.37085212  -28.35412563  -15.00213090  -12.38130436    4.78047471   89.98199155   14.23744747 
          649           650           651           652           653           654           655           656 
   3.62453577   -3.57597103   19.17380804   51.88199155  -22.51336517  -22.80355947   -3.99160739   15.36380804 
          657           658           659           660           661           662           663           664 
  55.26865822   51.78991727   42.09839968  -16.41598383    8.52167213  -27.51093014  -18.19759681  -18.87660883 
          665           666           667           668           669           670           671           672 
   8.64867213    7.46783412    2.59746660   -5.55539811   21.78598275   -1.82744073  -13.19297962   -9.58155863 
          673           674           675           676           677           678           679           680 
 -30.20385759   13.80661121   -8.30174852  -13.32055480  -26.58262650    2.95194852   29.60043438    4.86522889 
          681           682           683           684           685           686           687           688 
   3.07686916   -4.16443712   37.77283102   -1.34415577  -16.66887017   42.54063639   25.06016885  -15.56716898 
          689           690           691           692           693           694           695           696 
   1.90063639  -85.11835204  -21.24353208  -23.99649110  -34.81345075   14.39740272   -0.81674033  -56.68800025 
          697           698           699           700           701           702           703           704 
  -8.00703362   22.64714526   -0.52345075  -24.26704173  -49.58474033    5.54199975   73.27296638   -3.06345075 
          705           706           707           708           709           710           711           712 
 -16.08259728    1.21525967   -8.00703362   77.57469462   63.88601879  -23.38345075   -5.92259728    6.29525967 
          713           714           715           716           717           718           719           720 
 -12.23800025  -31.61017498  -55.13753086   11.26010798  -36.45561054  -31.61963309  -78.95232041  -19.31252364 
          721           722           723           724           725           726           727           728 
   9.07562055    5.44493134    4.67891069  -38.28784756  -25.49051510  -35.59314014   30.25091922  -32.12661646 
          729           730           731           732           733           734           735           736 
  -4.91113981   20.66817097   45.30215032    1.69153516  -29.31764441  -37.33710724  -77.39178604  -62.50759053 
          737           738           739           740           741           742           743           744 
 -74.01828531  -97.46947490   -8.19541556  -15.34320948  -55.26484066  -66.50635943  -21.71372088   -7.03066945 
          745           746           747           748           749           750           751           752 
 -17.47971373  -38.79071148   12.45649235  -19.56801905  -27.42686345  -39.01236604  -55.76052947  -54.26943449 
          753           754           755           756           757           758           759           760 
 -52.96712755  -40.32906056  -52.71127028  -57.17977095  -53.28149130  -56.70716868  -32.31216053  -11.83137421 
          761           762           763           764           765           766           767           768 
 -24.74673892  -21.42952472  -57.74294820   12.73135048   -0.56119863  -35.52130640  -53.02230415  -51.30510032 
          769           770           771           772           773           774           775           776 
 -49.02644579  -35.95653599  -54.11961171  -46.06270607  -35.98073451    1.44453096  -36.92523434  -33.00217545 
          777           778           779           780           781           782           783           784 
 -28.59567319  -28.32989794  -48.91124340  -18.60561932  -28.14846937  -54.16561932  -12.54123434  -26.96967545 
          785           786           787           788           789           790           791           792 
 -32.52112774  -32.17013603  -35.21943388  -21.68971185  -62.95754937  -43.06146303  -20.39983359  -10.59341350 
          793           794           795           796           797           798           799           800 
 -30.75017840    4.69410209   -5.72788342    2.73707020   11.69750566   22.13869828  -12.81206480  -12.93788686 
          801           802           803           804           805           806           807           808 
 -10.84459889  -14.71539506    2.51297376   33.43545498   53.08357062  -24.95776379  -26.44302624  -41.76023735 
          809           810           811           812           813           814           815           816 
 -12.59250719    8.75071837  -15.10027938   -4.02870673  -14.97497510  -25.05574827  -49.28858055  -22.36556734 
          817           818           819           820           821           822           823           824 
 -24.28830843   -8.54574827    1.51141945   -4.58556734    8.73169157  -13.62574827  -22.93608055  -11.42402888 
          825           826           827           828           829           830           831           832 
 -11.02028175  -15.31077518    5.42425173  -13.09358055  -27.44556734  -85.95028175  -25.66492098  -25.82153580 
          833           834           835           836           837           838           839           840 
 -37.04488301  -24.19430462  -31.19870986  -26.20920669  -69.63653580   84.39069538  -60.70165185   31.27815152 
          841           842           843           844           845           846           847           848 
  16.40832438  -29.66368988  -55.69975260  -62.98609981   26.89513135   11.29510758    6.13445504  -16.09276725 
          849           850           851           852           853           854           855           856 
 -38.80123687  -54.57433803  -53.52966730  -53.15374564   -5.31853579   -3.73074551   19.38042372  -24.09524030 
          857           858           859           860           861           862           863           864 
 -40.06916964  -42.08164951  -42.35212589  -53.47705248  -47.12941918  -98.70769094  -46.35636678  -14.59772929 
          865           866           867           868           869           870           871           872 
  29.07474406  -96.32712589   -9.75641764  -27.36095459  -33.29583631  -62.82498284  -39.60045923  -47.55038581 
          873           874           875           876           877           878           879           880 
 -26.80941918  -47.90769094   37.97776648    5.01281833  -19.31269555    1.98338284  -22.81898816  -10.28223352 
          881           882           883           884           885           886           887           888 
  -4.72384834   -8.20019555   -5.63661716   -1.79523410    9.39103554    5.76089207    9.33408427  -11.22552742 
          889           890           891           892           893           894           895           896 
  -7.20928510    4.19151055  -11.02491106  -73.27431630   -4.68441734  -27.26541509    1.75678873   11.74615755 
          897           898           899           900           901           902           903           904 
 -49.73495657  -12.30441734   25.00692152  -18.20818625   11.91581600    8.12968650  -53.02413012   32.43815262 
          905           906           907           908           909           910           911           912 
 -20.30195515  -63.20295290  -29.05611779  -38.02394961    7.44927595   28.89494487  -10.23951797    4.32185085 
          913           914           915           916           917           918           919           920 
 -29.69500126  -31.46902937    5.57873672    9.38938372  -25.57072405   22.27990384   -5.32050289  -26.80864402 
          921           922           923           924           925           926           927           928 
 -29.15081127  -53.82868871  -25.51655108  -47.92963935  -44.43198659  -16.70704459  -46.43218321  -34.63201036 
          929           930           931           932           933           934           935           936 
  -9.96836363  -31.62583809  -44.94644979  -31.43441182   -5.58750009  -16.90651399  -11.61823866  -12.41559950 
          937           938           939           940           941           942           943           944 
 -11.76320443   -8.12718602    7.92366647  -17.51805908  -11.67910564   -1.76502101   17.97934022   32.14119972 
          945           946           947           948           949           950           951           952 
  40.03006598  -12.00926781   35.29221129   17.36325533  -25.43377738  -30.77018190   -2.44920142   15.04118612 
          953           954           955           956           957           958           959           960 
   7.90166120  -34.90305932   37.74919137  -50.25211769  -52.23862921   -5.18517763    1.36548617    2.88961686 
          961           962           963           964           965           966           967           968 
 -12.00166700  -16.74252175  -46.23979616  -14.69211769   -8.54038314  -72.96166700  -27.49265956  -89.41979616 
          969           970           971           972           973           974           975           976 
 -70.53420160    9.23252368  -26.87419667  -35.21054072  -45.87404539  -42.33217482  -24.21976480  -10.77023010 
          977           978           979           980           981           982           983           984 
 -39.37898691  -31.05002156  -36.64537872  -38.34074625   15.73638904    3.70776990   -7.43537872  -23.63361096 
          985           986           987           988           989           990           991           992 
  -8.19002156  -89.67361096   13.86776990   -7.20565357  -19.81532599   28.72805532   -4.45079265  -20.60297500 
          993           994           995           996           997           998           999          1000 
 -40.76916629   -4.91282142   52.85805532   10.78920735   -0.60624772   -6.73316629   -6.18282142  -22.52226903 
 [ reached 'max' / getOption("max.print") -- omitted 8500 entries ]
residuals(micsal.lm, quantileFunction = qnorm)
            1             2             3             4             5             6             7             8 
  38.93612888    9.20776915  -14.96687046  -37.85977549  -36.76913522   54.60893178  -26.10210871   10.54031971 
            9            10            11            12            13            14            15            16 
   6.37846240   -7.31253535   -4.96033152   -3.01429604    3.94751852   -2.22769917   38.26429975  -26.50664027 
           17            18            19            20            21            22            23            24 
   2.64120552   -7.98832502  -20.30726154  -12.08736931  -15.43693848   22.29383677    9.42320559   26.12168682 
           25            26            27            28            29            30            31            32 
 -31.53391351  -46.96076642  -53.40044697  -38.13686857  -68.92921581  -31.80627381    1.26451449  -16.32803455 
           33            34            35            36            37            38            39            40 
 -11.87188997  -20.40278738  -18.01940219   24.85925059  -20.83717101  -47.81951825  -43.91968117  -31.94420668 
           41            42            43            44            45            46            47            48 
 -59.02847220  -85.62252254  -69.19238438   40.56531653  -14.47511674  -42.53488034  -29.58390777  -23.66115328 
           49            50            51            52            53            54            55            56 
  18.78654762   -7.89055231  -37.98231591  -14.88006034  -75.47789050    1.19004909   -4.69672819  -21.63716145 
           57            58            59            60            61            62            63            64 
 -70.01692506  -53.39166949  -60.45653133   13.91820882   18.08163862   92.45479404   89.02348775   19.56391606 
           65            66            67            68            69            70            71            72 
   3.55374694  -31.07040965   38.03471885   -0.76281224  -20.11140077  -30.34038404   55.24725623    9.02637825 
           73            74            75            76            77            78            79            80 
 -26.78438404  -30.17794745  -26.12300048  -22.63214702    3.55570993  -32.75754999  -83.13658336    7.52514488 
           81            82            83            84            85            86            87            88 
  25.94699952   18.64285298    9.90570993  -39.10754999    0.85759552  -12.99966715    0.22785298   -6.60429007 
           89            90            91            92            93            94            95            96 
  10.42245001   52.25646905   16.09759552   -7.07300048  -75.97214702  -28.94754999  -83.13658336    3.72430162 
           97            98            99           100           101           102           103           104 
  -8.65129439  -15.32044092  -15.80258397   16.46415611   84.19512274    7.21685098    1.14817515   15.61928598 
          105           106           107           108           109           110           111           112 
  -8.07395305   14.13097481  -81.77149480  -68.86063240    2.02427805   48.23220591   -1.15498533   10.69219807 
          113           114           115           116           117           118           119           120 
 -25.86940131   -0.83149085  -43.39656300   53.59652184  -44.37239170    5.81990461   -3.56994531  -14.89041492 
          121           122           123           124           125           126           127           128 
 -14.61152714  -43.30513655  -77.17795315   52.24200327  -53.78887347   26.68315530   -1.47629977   26.68315530 
          129           130           131           132           133           134           135           136 
   1.06370023  -14.24832108   -3.34442480   -1.87469081   -2.36799673   25.41315530   -5.53981590   41.04385574 
          137           138           139           140           141           142           143           144 
 -33.80367735   -8.43251398   17.32018410  -38.33114426  -14.75367735  -37.65338036  -33.70868564  -39.76491402 
          145           146           147           148           149           150           151           152 
 -18.23981590  -35.79114426    5.53748602    6.83632265  -27.49338036   -5.76868564   -6.32332287   -9.81322807 
          153           154           155           156           157           158           159           160 
  -9.10006787  -13.81142199  -31.71118559  -43.31354635   24.91906998  -33.58079186   12.58123982    6.50394829 
          161           162           163           164           165           166           167           168 
  18.35046962   36.14756254  -12.54142199  -52.03118559   24.84312032  -40.75876018  -41.74432206  -19.90742199 
          169           170           171           172           173           174           175           176 
 -22.82118559  -24.68687968  -28.42093002   43.88920814  -20.43876018  -16.35605171  -24.48046145  -22.20586052 
          177           178           179           180           181           182           183           184 
 -10.88065275  -20.46261416  -17.91354635  -34.77093002  -37.39079186   66.61046962   10.43078439   10.36588251 
          185           186           187           188           189           190           191           192 
  36.62955415  -31.70753241  -43.85299011  -23.29378241  -19.12729602   17.61500989    9.56295956    2.30512940 
          193           194           195           196           197           198           199           200 
 -40.18564080  -21.11854788  -16.72153241    8.81270398  -24.80299011   -1.86704044  -19.09190228 -147.28216213 
          201           202           203           204           205           206           207           208 
 -18.57854788  -27.89753241  -20.39729602  -34.88704044   -8.29690228   -9.12487060  -26.19854788  -29.67657187 
          209           210           211           212           213           214           215           216 
  -2.49043248  -29.59086574   -6.42729602  -54.01299011  -53.61034728  -28.43883097    1.24955422  -15.24429300 
          217           218           219           220           221           222           223           224 
 -11.34721460    2.14110483  -54.29261984    3.10424154   20.63320700  -48.23556184  -38.41740239  -11.95844578 
          225           226           227           228           229           230           231           232 
 -39.81879300  -11.09321460  -13.94556184  -13.40575846  -31.61383097  -27.70644578  -28.47345966  -11.09321460 
          233           234           235           236           237           238           239           240 
 -31.43261984  -11.92883097  -50.48679300   12.72443816   14.28738016   19.59777143   38.24801650   -5.71396310 
          241           242           243           244           245           246           247           248 
 -30.67343757  -53.39204926  -61.80366408   -2.06878013  -23.36523200  -33.17642869  -51.94796102  -61.99243298 
          249           250           251           252           253           254           255           256 
  15.42922878    0.36578767    0.64478992  -38.27800625  -40.35363743  -40.16515620    5.25701877   -5.89397898 
          257           258           259           260           261           262           263           264 
 -63.40240633  -65.15580947  -44.87352046  -12.04164236   27.92824987   14.68445595   12.60882477  -25.36285707 
          265           266           267           268           269           270           271           272 
  -9.10679358   -9.83462862   -0.39623243  -22.38569527  -21.28632645  -33.16284523  -48.06020667    9.34527041 
          273           274           275           276           277           278           279           280 
   9.30755942   -1.00825215  -11.44693737   26.86093920   22.31163199   35.99607533   42.43913259  -23.18368401 
          281           282           283           284           285           286           287           288 
  21.08209370   39.95478665  -18.52131165  103.99858057   30.33858057   53.11915547   65.81915547   14.28027526 
          289           290           291           292           293           294           295           296 
 -33.18759343  -16.48702995   11.31202895   33.60436453   32.78156836   48.48593718   18.27323574   13.52688852 
          297           298           299           300           301           302           303           304 
 -24.11514945    3.03323574   14.37355519   14.80106168   54.41792306  -15.23588568    6.36485055   -6.87276426 
          305           306           307           308           309           310           311           312 
  -8.38061148    5.08380025   30.04106168  -14.16207694  -10.15588568    9.77184998  -30.90388224  -35.90426292 
          313           314           315           316           317           318           319           320 
 -45.50350805   33.56096089   26.52852870   49.60990766  -15.66388224  -56.22426292  -34.07350805    6.89972161 
          321           322           323           324           325           326           327           328 
 -11.85388224  -31.67092958  -26.45350805  -33.16834881  -38.43670399   27.21972161  -23.28388224  -32.34826292 
          329           330           331           332           333           334           335           336 
 -55.66350805    2.11611776  -35.90426292  -64.55350805  -35.70834881    9.82329601   -8.81009234   -8.15387983 
          337           338           339           340           341           342           343           344 
   5.55589477  -22.63868555   51.17463619  -56.92868555  -35.08410523   33.36669731  -22.38410523   38.32131445 
          345           346           347           348           349           350           351           352 
 -30.10536381   57.49669731  -11.34340092  -93.50410523  -47.61535222   54.98463619   66.38669731   29.29659908 
          353           354           355           356           357           358           359           360 
  -1.40046471  -13.03044249  -40.77046471   49.40022130   13.53061744   -2.41564800  -26.19693187  -34.68389407 
          361           362           363           364           365           366           367           368 
 -21.36792443 -120.12506102   -3.02613314   16.05221339   -1.60044249   -0.31120727  -18.30404923  -70.64693187 
          369           370           371           372           373           374           375           376 
 -13.03259968   48.82298274   58.63013186   52.16686416   49.17997551   23.41742753   20.62924546   59.82964941 
          377           378           379           380           381           382           383           384 
   0.57444246   -2.44926635    3.94964941  -13.96291279  -12.82437571  -68.13639426  -20.54893601   28.83661844 
          385           386           387           388           389           390           391           392 
 -41.34365764   24.51441129  -11.95927394  -22.06237638  -30.41181569   -3.03959457   19.48397942   59.12238004 
          393           394           395           396           397           398           399           400 
 -10.45470951    4.95941541   38.25830319   21.41802712   18.53321052   -0.03046571   -9.57968169  -17.66981127 
          401           402           403           404           405           406           407           408 
  17.36229508   18.48784953   62.60757346  -89.87104658  -12.65562691  109.41769484   -5.25841107   90.24640563 
          409           410           411           412           413           414           415           416 
 -21.16487823  -10.60184043  -31.92841107  -44.62841107  -54.98838885   67.38640563   -8.46487823  -16.18355280 
          417           418           419           420           421           422           423           424 
 -34.53140861  -33.49003722   -8.27878514    7.89997889   -5.49435642  -12.37563881  -13.38585389    4.66049320 
          425           426           427           428           429           430           431           432 
 -30.34295113   26.39780720    7.33572726   11.02798195  -12.95622223   28.30172460   60.09400732   53.47213564 
          433           434           435           436           437           438           439           440 
  30.92792258    6.52151862  -22.73527763   21.43603715   -0.06450461  -13.67095015  -12.73122623  -37.44564221 
          441           442           443           444           445           446           447           448 
 -59.51848138    1.92388904   11.48770381   11.25596500   10.77282873   -6.05095015   34.87645343  -31.32239453 
          449           450           451           452           453           454           455           456 
   1.47815039    9.02612909   23.46300905   -9.22076817  -24.79699095   24.71645343   -0.84239453  -12.91518294 
          457           458           459           460           461           462           463           464 
   9.19423183    3.77557670   33.57946242  -30.12595493    5.24312010   16.93760547    3.38315039   -6.68076817 
          465           466           467           468           469           470           471           472 
 -41.94442330   53.94300905    3.60232331  -19.59169720  -40.60454307  -41.48584835  -91.75839078  -16.11523058 
          473           474           475           476           477           478           479           480 
  30.18383229  -27.73007673    6.49502139  -22.55686252  -37.03767669  -51.23284005   37.88145693  -23.12130697 
          481           482           483           484           485           486           487           488 
 -40.42434336  -37.00884005  -81.49854307  -35.00884835  -16.11523058  -24.33767669  -26.21384005  -56.09854307 
          489           490           491           492           493           494           495           496 
 -67.39384835  -91.75839078  -24.17407673    9.03502139  -35.82130697  -59.89767669  -57.62254307   30.18383229 
          497           498           499           500           501           502           503           504 
   0.76301898   60.98980727    9.00356051   27.13597235  -19.95491516   17.25856051    5.84301898  -24.50866009 
          505           506           507           508           509           510           511           512 
  33.55780727   17.53070337   27.77097235    9.90805995  -44.95698102   82.32396347  -24.27656711   18.41972409 
          513           514           515           516           517           518           519           520 
 -36.14136016  -58.79014541  -13.28136016  -56.29758204  -15.82136016  -28.35758204  -32.16176411  -13.43959285 
          521           522           523           524           525           526           527           528 
 -20.36960689  -25.59041128   31.35961094   16.32027473  -16.24732913   25.64461094  -31.21469699   11.46294427 
          529           530           531           532           533           534           535           536 
  55.69027473   24.39267087   23.77107209   11.39949269  -17.96942782  -21.54641365  -37.25510774  -36.92515807 
          537           538           539           540           541           542           543           544 
 -73.13898823  -18.56018255   22.01791208  -32.59918784    0.04704855   44.15535446  -20.53869588   14.39791208 
          545           546           547           548           549           550           551           552 
 -36.40918784  -59.98464554  -73.87869588   -1.56855772  -24.55020332  -19.52386999  -34.41869214  -34.57233053 
          553           554           555           556           557           558           559           560 
  25.63290587   31.46316144   17.41329960   28.28803975   42.67456108  -22.82014540  117.56145036   -4.18087562 
          561           562           563           564           565           566           567           568 
 -41.92344282  -34.39312336   41.83045503   47.13791117    1.12200470  -12.83080310  -40.96808146  -48.75216686 
          569           570           571           572           573           574           575           576 
 -82.65871015  -39.87846509   34.20518231   -0.23266197  -30.55408146  -41.17204349   10.66045348    3.19821082 
          577           578           579           580           581           582           583           584 
 -11.18804320  -30.87981541  -24.47241364   33.88738134    4.49188205   27.25062347  -28.52811795    1.35783801 
          585           586           587           588           589           590           591           592 
  -9.95719441  -16.15248301   -8.53248301   13.44039552   -5.00027888  -17.48356583  -26.07613797  -15.61610758 
          593           594           595           596           597           598           599           600 
 -26.17455313  -10.97478193   -3.15786809   -9.53808435  -23.97821394  -70.82356583  -32.74363797   22.61692168 
          601           602           603           604           605           606           607           608 
  17.93178606  -18.75356583  -34.64863797  -39.74610758  -33.96388646   -0.85082920   14.62213191   -4.92821394 
          609           610           611           612           613           614           615           616 
 -20.65856583  -45.44363797  -47.78944091  -37.35055313  -21.17082920    1.72521807   18.59627518    9.90693898 
          617           618           619           620           621           622           623           624 
  -6.65866489  -24.63693033  -11.58821419  -49.48755502  -35.35400732  -17.01134894  -26.98920235   10.31150110 
          625           626           627           628           629           630           631           632 
 -16.43919367  -43.51738066  -59.61852438  -37.70927011  -24.20597774  -23.97182348   20.20746675    3.01858811 
          633           634           635           636           637           638           639           640 
 -50.99278733  -30.30077666  -50.08470600  -62.84985253  -68.49666225  -79.21639835  -38.94162221  -41.20156063 
          641           642           643           644           645           646           647           648 
 -54.67856980    6.37085212  -28.35412563  -15.00213090  -12.38130436    4.78047471   89.98199155   14.23744747 
          649           650           651           652           653           654           655           656 
   3.62453577   -3.57597103   19.17380804   51.88199155  -22.51336517  -22.80355947   -3.99160739   15.36380804 
          657           658           659           660           661           662           663           664 
  55.26865822   51.78991727   42.09839968  -16.41598383    8.52167213  -27.51093014  -18.19759681  -18.87660883 
          665           666           667           668           669           670           671           672 
   8.64867213    7.46783412    2.59746660   -5.55539811   21.78598275   -1.82744073  -13.19297962   -9.58155863 
          673           674           675           676           677           678           679           680 
 -30.20385759   13.80661121   -8.30174852  -13.32055480  -26.58262650    2.95194852   29.60043438    4.86522889 
          681           682           683           684           685           686           687           688 
   3.07686916   -4.16443712   37.77283102   -1.34415577  -16.66887017   42.54063639   25.06016885  -15.56716898 
          689           690           691           692           693           694           695           696 
   1.90063639  -85.11835204  -21.24353208  -23.99649110  -34.81345075   14.39740272   -0.81674033  -56.68800025 
          697           698           699           700           701           702           703           704 
  -8.00703362   22.64714526   -0.52345075  -24.26704173  -49.58474033    5.54199975   73.27296638   -3.06345075 
          705           706           707           708           709           710           711           712 
 -16.08259728    1.21525967   -8.00703362   77.57469462   63.88601879  -23.38345075   -5.92259728    6.29525967 
          713           714           715           716           717           718           719           720 
 -12.23800025  -31.61017498  -55.13753086   11.26010798  -36.45561054  -31.61963309  -78.95232041  -19.31252364 
          721           722           723           724           725           726           727           728 
   9.07562055    5.44493134    4.67891069  -38.28784756  -25.49051510  -35.59314014   30.25091922  -32.12661646 
          729           730           731           732           733           734           735           736 
  -4.91113981   20.66817097   45.30215032    1.69153516  -29.31764441  -37.33710724  -77.39178604  -62.50759053 
          737           738           739           740           741           742           743           744 
 -74.01828531  -97.46947490   -8.19541556  -15.34320948  -55.26484066  -66.50635943  -21.71372088   -7.03066945 
          745           746           747           748           749           750           751           752 
 -17.47971373  -38.79071148   12.45649235  -19.56801905  -27.42686345  -39.01236604  -55.76052947  -54.26943449 
          753           754           755           756           757           758           759           760 
 -52.96712755  -40.32906056  -52.71127028  -57.17977095  -53.28149130  -56.70716868  -32.31216053  -11.83137421 
          761           762           763           764           765           766           767           768 
 -24.74673892  -21.42952472  -57.74294820   12.73135048   -0.56119863  -35.52130640  -53.02230415  -51.30510032 
          769           770           771           772           773           774           775           776 
 -49.02644579  -35.95653599  -54.11961171  -46.06270607  -35.98073451    1.44453096  -36.92523434  -33.00217545 
          777           778           779           780           781           782           783           784 
 -28.59567319  -28.32989794  -48.91124340  -18.60561932  -28.14846937  -54.16561932  -12.54123434  -26.96967545 
          785           786           787           788           789           790           791           792 
 -32.52112774  -32.17013603  -35.21943388  -21.68971185  -62.95754937  -43.06146303  -20.39983359  -10.59341350 
          793           794           795           796           797           798           799           800 
 -30.75017840    4.69410209   -5.72788342    2.73707020   11.69750566   22.13869828  -12.81206480  -12.93788686 
          801           802           803           804           805           806           807           808 
 -10.84459889  -14.71539506    2.51297376   33.43545498   53.08357062  -24.95776379  -26.44302624  -41.76023735 
          809           810           811           812           813           814           815           816 
 -12.59250719    8.75071837  -15.10027938   -4.02870673  -14.97497510  -25.05574827  -49.28858055  -22.36556734 
          817           818           819           820           821           822           823           824 
 -24.28830843   -8.54574827    1.51141945   -4.58556734    8.73169157  -13.62574827  -22.93608055  -11.42402888 
          825           826           827           828           829           830           831           832 
 -11.02028175  -15.31077518    5.42425173  -13.09358055  -27.44556734  -85.95028175  -25.66492098  -25.82153580 
          833           834           835           836           837           838           839           840 
 -37.04488301  -24.19430462  -31.19870986  -26.20920669  -69.63653580   84.39069538  -60.70165185   31.27815152 
          841           842           843           844           845           846           847           848 
  16.40832438  -29.66368988  -55.69975260  -62.98609981   26.89513135   11.29510758    6.13445504  -16.09276725 
          849           850           851           852           853           854           855           856 
 -38.80123687  -54.57433803  -53.52966730  -53.15374564   -5.31853579   -3.73074551   19.38042372  -24.09524030 
          857           858           859           860           861           862           863           864 
 -40.06916964  -42.08164951  -42.35212589  -53.47705248  -47.12941918  -98.70769094  -46.35636678  -14.59772929 
          865           866           867           868           869           870           871           872 
  29.07474406  -96.32712589   -9.75641764  -27.36095459  -33.29583631  -62.82498284  -39.60045923  -47.55038581 
          873           874           875           876           877           878           879           880 
 -26.80941918  -47.90769094   37.97776648    5.01281833  -19.31269555    1.98338284  -22.81898816  -10.28223352 
          881           882           883           884           885           886           887           888 
  -4.72384834   -8.20019555   -5.63661716   -1.79523410    9.39103554    5.76089207    9.33408427  -11.22552742 
          889           890           891           892           893           894           895           896 
  -7.20928510    4.19151055  -11.02491106  -73.27431630   -4.68441734  -27.26541509    1.75678873   11.74615755 
          897           898           899           900           901           902           903           904 
 -49.73495657  -12.30441734   25.00692152  -18.20818625   11.91581600    8.12968650  -53.02413012   32.43815262 
          905           906           907           908           909           910           911           912 
 -20.30195515  -63.20295290  -29.05611779  -38.02394961    7.44927595   28.89494487  -10.23951797    4.32185085 
          913           914           915           916           917           918           919           920 
 -29.69500126  -31.46902937    5.57873672    9.38938372  -25.57072405   22.27990384   -5.32050289  -26.80864402 
          921           922           923           924           925           926           927           928 
 -29.15081127  -53.82868871  -25.51655108  -47.92963935  -44.43198659  -16.70704459  -46.43218321  -34.63201036 
          929           930           931           932           933           934           935           936 
  -9.96836363  -31.62583809  -44.94644979  -31.43441182   -5.58750009  -16.90651399  -11.61823866  -12.41559950 
          937           938           939           940           941           942           943           944 
 -11.76320443   -8.12718602    7.92366647  -17.51805908  -11.67910564   -1.76502101   17.97934022   32.14119972 
          945           946           947           948           949           950           951           952 
  40.03006598  -12.00926781   35.29221129   17.36325533  -25.43377738  -30.77018190   -2.44920142   15.04118612 
          953           954           955           956           957           958           959           960 
   7.90166120  -34.90305932   37.74919137  -50.25211769  -52.23862921   -5.18517763    1.36548617    2.88961686 
          961           962           963           964           965           966           967           968 
 -12.00166700  -16.74252175  -46.23979616  -14.69211769   -8.54038314  -72.96166700  -27.49265956  -89.41979616 
          969           970           971           972           973           974           975           976 
 -70.53420160    9.23252368  -26.87419667  -35.21054072  -45.87404539  -42.33217482  -24.21976480  -10.77023010 
          977           978           979           980           981           982           983           984 
 -39.37898691  -31.05002156  -36.64537872  -38.34074625   15.73638904    3.70776990   -7.43537872  -23.63361096 
          985           986           987           988           989           990           991           992 
  -8.19002156  -89.67361096   13.86776990   -7.20565357  -19.81532599   28.72805532   -4.45079265  -20.60297500 
          993           994           995           996           997           998           999          1000 
 -40.76916629   -4.91282142   52.85805532   10.78920735   -0.60624772   -6.73316629   -6.18282142  -22.52226903 
 [ reached 'max' / getOption("max.print") -- omitted 8500 entries ]
plot(micsal.lm)

Post-hoc comparisons

micsal.emm <- emmeans(micsal.lm, ~ begin_date_year*age_group)
pairs(micsal.emm, simple = "age_group")
begin_date_year = 1992:
 contrast                  estimate   SE   df  t.ratio p.value
 age_group0 - age_group1     -64.28 3.25 9471  -19.805  <.0001
 age_group0 - age_group2    -131.51 3.15 9471  -41.717  <.0001
 age_group0 - age_group3    -187.45 3.13 9471  -59.826  <.0001
 age_group0 - age_group4    -231.66 3.16 9471  -73.419  <.0001
 age_group0 - age_group5    -268.75 3.19 9471  -84.193  <.0001
 age_group0 - age_group6    -301.49 3.27 9471  -92.326  <.0001
 age_group0 - age_group7    -334.87 3.38 9471  -99.041  <.0001
 age_group0 - age_group8    -364.05 3.57 9471 -102.017  <.0001
 age_group0 - age_group9    -390.52 3.78 9471 -103.374  <.0001
 age_group0 - age_group10   -405.81 4.21 9471  -96.316  <.0001
 age_group0 - age_group11   -420.63 5.15 9471  -81.730  <.0001
 age_group0 - age_group12   -427.70 6.38 9471  -67.003  <.0001
 age_group1 - age_group2     -67.23 1.66 9471  -40.457  <.0001
 age_group1 - age_group3    -123.18 1.62 9471  -76.172  <.0001
 age_group1 - age_group4    -167.39 1.65 9471 -101.198  <.0001
 age_group1 - age_group5    -204.47 1.72 9471 -118.868  <.0001
 age_group1 - age_group6    -237.21 1.85 9471 -128.376  <.0001
 age_group1 - age_group7    -270.60 2.04 9471 -132.463  <.0001
 age_group1 - age_group8    -299.77 2.34 9471 -128.046  <.0001
 age_group1 - age_group9    -326.24 2.65 9471 -122.952  <.0001
 age_group1 - age_group10   -341.54 3.24 9471 -105.344  <.0001
 age_group1 - age_group11   -356.36 4.39 9471  -81.267  <.0001
 age_group1 - age_group12   -363.42 5.79 9471  -62.806  <.0001
 age_group2 - age_group3     -55.94 1.39 9471  -40.211  <.0001
 age_group2 - age_group4    -100.15 1.43 9471  -69.934  <.0001
 age_group2 - age_group5    -137.24 1.51 9471  -91.095  <.0001
 age_group2 - age_group6    -169.98 1.65 9471 -103.113  <.0001
 age_group2 - age_group7    -203.36 1.86 9471 -109.122  <.0001
 age_group2 - age_group8    -232.54 2.19 9471 -106.339  <.0001
 age_group2 - age_group9    -259.01 2.52 9471 -102.793  <.0001
 age_group2 - age_group10   -274.30 3.13 9471  -87.553  <.0001
 age_group2 - age_group11   -289.12 4.30 9471  -67.168  <.0001
 age_group2 - age_group12   -296.19 5.73 9471  -51.734  <.0001
 age_group3 - age_group4     -44.21 1.37 9471  -32.200  <.0001
 age_group3 - age_group5     -81.29 1.45 9471  -56.092  <.0001
 age_group3 - age_group6    -114.03 1.59 9471  -71.510  <.0001
 age_group3 - age_group7    -147.42 1.82 9471  -81.191  <.0001
 age_group3 - age_group8    -176.59 2.15 9471  -82.299  <.0001
 age_group3 - age_group9    -203.06 2.49 9471  -81.709  <.0001
 age_group3 - age_group10   -218.36 3.11 9471  -70.324  <.0001
 age_group3 - age_group11   -233.18 4.28 9471  -54.432  <.0001
 age_group3 - age_group12   -240.24 5.71 9471  -42.079  <.0001
 age_group4 - age_group5     -37.08 1.49 9471  -24.952  <.0001
 age_group4 - age_group6     -69.82 1.63 9471  -42.902  <.0001
 age_group4 - age_group7    -103.21 1.84 9471  -55.963  <.0001
 age_group4 - age_group8    -132.38 2.17 9471  -61.011  <.0001
 age_group4 - age_group9    -158.85 2.51 9471  -63.371  <.0001
 age_group4 - age_group10   -174.15 3.12 9471  -55.776  <.0001
 age_group4 - age_group11   -188.97 4.30 9471  -43.988  <.0001
 age_group4 - age_group12   -196.03 5.72 9471  -34.281  <.0001
 age_group5 - age_group6     -32.74 1.69 9471  -19.370  <.0001
 age_group5 - age_group7     -66.13 1.90 9471  -34.813  <.0001
 age_group5 - age_group8     -95.30 2.22 9471  -42.998  <.0001
 age_group5 - age_group9    -121.77 2.55 9471  -47.794  <.0001
 age_group5 - age_group10   -137.07 3.16 9471  -43.438  <.0001
 age_group5 - age_group11   -151.89 4.32 9471  -35.161  <.0001
 age_group5 - age_group12   -158.95 5.74 9471  -27.710  <.0001
 age_group6 - age_group7     -33.39 2.01 9471  -16.616  <.0001
 age_group6 - age_group8     -62.56 2.31 9471  -27.076  <.0001
 age_group6 - age_group9     -89.03 2.63 9471  -33.838  <.0001
 age_group6 - age_group10   -104.33 3.22 9471  -32.369  <.0001
 age_group6 - age_group11   -119.15 4.37 9471  -27.272  <.0001
 age_group6 - age_group12   -126.21 5.77 9471  -21.861  <.0001
 age_group7 - age_group8     -29.17 2.47 9471  -11.826  <.0001
 age_group7 - age_group9     -55.64 2.77 9471  -20.088  <.0001
 age_group7 - age_group10    -70.94 3.34 9471  -21.256  <.0001
 age_group7 - age_group11    -85.76 4.45 9471  -19.256  <.0001
 age_group7 - age_group12    -92.82 5.84 9471  -15.901  <.0001
 age_group8 - age_group9     -26.47 3.00 9471   -8.837  <.0001
 age_group8 - age_group10    -41.77 3.53 9471  -11.841  <.0001
 age_group8 - age_group11    -56.59 4.60 9471  -12.310  <.0001
 age_group8 - age_group12    -63.65 5.95 9471  -10.701  <.0001
 age_group9 - age_group10    -15.30 3.74 9471   -4.085  0.0030
 age_group9 - age_group11    -30.12 4.77 9471   -6.319  <.0001
 age_group9 - age_group12    -37.18 6.08 9471   -6.115  <.0001
 age_group10 - age_group11   -14.82 5.12 9471   -2.896  0.1606
 age_group10 - age_group12   -21.88 6.36 9471   -3.442  0.0332
 age_group11 - age_group12    -7.06 7.01 9471   -1.007  0.9987

P value adjustment: tukey method for comparing a family of 13 estimates 
test(pairs(micsal.emm, by = "begin_date_year"), by = NULL, adjust = "mvt")
 contrast                  begin_date_year estimate   SE   df  t.ratio p.value
 age_group0 - age_group1              1992   -64.28 3.25 9471  -19.805  <.0001
 age_group0 - age_group2              1992  -131.51 3.15 9471  -41.717  <.0001
 age_group0 - age_group3              1992  -187.45 3.13 9471  -59.826  <.0001
 age_group0 - age_group4              1992  -231.66 3.16 9471  -73.419  <.0001
 age_group0 - age_group5              1992  -268.75 3.19 9471  -84.193  <.0001
 age_group0 - age_group6              1992  -301.49 3.27 9471  -92.326  <.0001
 age_group0 - age_group7              1992  -334.87 3.38 9471  -99.041  <.0001
 age_group0 - age_group8              1992  -364.05 3.57 9471 -102.017  <.0001
 age_group0 - age_group9              1992  -390.52 3.78 9471 -103.374  <.0001
 age_group0 - age_group10             1992  -405.81 4.21 9471  -96.316  <.0001
 age_group0 - age_group11             1992  -420.63 5.15 9471  -81.730  <.0001
 age_group0 - age_group12             1992  -427.70 6.38 9471  -67.003  <.0001
 age_group1 - age_group2              1992   -67.23 1.66 9471  -40.457  <.0001
 age_group1 - age_group3              1992  -123.18 1.62 9471  -76.172  <.0001
 age_group1 - age_group4              1992  -167.39 1.65 9471 -101.198  <.0001
 age_group1 - age_group5              1992  -204.47 1.72 9471 -118.868  <.0001
 age_group1 - age_group6              1992  -237.21 1.85 9471 -128.376  <.0001
 age_group1 - age_group7              1992  -270.60 2.04 9471 -132.463  <.0001
 age_group1 - age_group8              1992  -299.77 2.34 9471 -128.046  <.0001
 age_group1 - age_group9              1992  -326.24 2.65 9471 -122.952  <.0001
 age_group1 - age_group10             1992  -341.54 3.24 9471 -105.344  <.0001
 age_group1 - age_group11             1992  -356.36 4.39 9471  -81.267  <.0001
 age_group1 - age_group12             1992  -363.42 5.79 9471  -62.806  <.0001
 age_group2 - age_group3              1992   -55.94 1.39 9471  -40.211  <.0001
 age_group2 - age_group4              1992  -100.15 1.43 9471  -69.934  <.0001
 age_group2 - age_group5              1992  -137.24 1.51 9471  -91.095  <.0001
 age_group2 - age_group6              1992  -169.98 1.65 9471 -103.113  <.0001
 age_group2 - age_group7              1992  -203.36 1.86 9471 -109.122  <.0001
 age_group2 - age_group8              1992  -232.54 2.19 9471 -106.339  <.0001
 age_group2 - age_group9              1992  -259.01 2.52 9471 -102.793  <.0001
 age_group2 - age_group10             1992  -274.30 3.13 9471  -87.553  <.0001
 age_group2 - age_group11             1992  -289.12 4.30 9471  -67.168  <.0001
 age_group2 - age_group12             1992  -296.19 5.73 9471  -51.734  <.0001
 age_group3 - age_group4              1992   -44.21 1.37 9471  -32.200  <.0001
 age_group3 - age_group5              1992   -81.29 1.45 9471  -56.092  <.0001
 age_group3 - age_group6              1992  -114.03 1.59 9471  -71.510  <.0001
 age_group3 - age_group7              1992  -147.42 1.82 9471  -81.191  <.0001
 age_group3 - age_group8              1992  -176.59 2.15 9471  -82.299  <.0001
 age_group3 - age_group9              1992  -203.06 2.49 9471  -81.709  <.0001
 age_group3 - age_group10             1992  -218.36 3.11 9471  -70.324  <.0001
 age_group3 - age_group11             1992  -233.18 4.28 9471  -54.432  <.0001
 age_group3 - age_group12             1992  -240.24 5.71 9471  -42.079  <.0001
 age_group4 - age_group5              1992   -37.08 1.49 9471  -24.952  <.0001
 age_group4 - age_group6              1992   -69.82 1.63 9471  -42.902  <.0001
 age_group4 - age_group7              1992  -103.21 1.84 9471  -55.963  <.0001
 age_group4 - age_group8              1992  -132.38 2.17 9471  -61.011  <.0001
 age_group4 - age_group9              1992  -158.85 2.51 9471  -63.371  <.0001
 age_group4 - age_group10             1992  -174.15 3.12 9471  -55.776  <.0001
 age_group4 - age_group11             1992  -188.97 4.30 9471  -43.988  <.0001
 age_group4 - age_group12             1992  -196.03 5.72 9471  -34.281  <.0001
 age_group5 - age_group6              1992   -32.74 1.69 9471  -19.370  <.0001
 age_group5 - age_group7              1992   -66.13 1.90 9471  -34.813  <.0001
 age_group5 - age_group8              1992   -95.30 2.22 9471  -42.998  <.0001
 age_group5 - age_group9              1992  -121.77 2.55 9471  -47.794  <.0001
 age_group5 - age_group10             1992  -137.07 3.16 9471  -43.438  <.0001
 age_group5 - age_group11             1992  -151.89 4.32 9471  -35.161  <.0001
 age_group5 - age_group12             1992  -158.95 5.74 9471  -27.710  <.0001
 age_group6 - age_group7              1992   -33.39 2.01 9471  -16.616  <.0001
 age_group6 - age_group8              1992   -62.56 2.31 9471  -27.076  <.0001
 age_group6 - age_group9              1992   -89.03 2.63 9471  -33.838  <.0001
 age_group6 - age_group10             1992  -104.33 3.22 9471  -32.369  <.0001
 age_group6 - age_group11             1992  -119.15 4.37 9471  -27.272  <.0001
 age_group6 - age_group12             1992  -126.21 5.77 9471  -21.861  <.0001
 age_group7 - age_group8              1992   -29.17 2.47 9471  -11.826  <.0001
 age_group7 - age_group9              1992   -55.64 2.77 9471  -20.088  <.0001
 age_group7 - age_group10             1992   -70.94 3.34 9471  -21.256  <.0001
 age_group7 - age_group11             1992   -85.76 4.45 9471  -19.256  <.0001
 age_group7 - age_group12             1992   -92.82 5.84 9471  -15.901  <.0001
 age_group8 - age_group9              1992   -26.47 3.00 9471   -8.837  <.0001
 age_group8 - age_group10             1992   -41.77 3.53 9471  -11.841  <.0001
 age_group8 - age_group11             1992   -56.59 4.60 9471  -12.310  <.0001
 age_group8 - age_group12             1992   -63.65 5.95 9471  -10.701  <.0001
 age_group9 - age_group10             1992   -15.30 3.74 9471   -4.085  0.0026
 age_group9 - age_group11             1992   -30.12 4.77 9471   -6.319  <.0001
 age_group9 - age_group12             1992   -37.18 6.08 9471   -6.115  <.0001
 age_group10 - age_group11            1992   -14.82 5.12 9471   -2.896  0.1315
 age_group10 - age_group12            1992   -21.88 6.36 9471   -3.442  0.0260
 age_group11 - age_group12            1992    -7.06 7.01 9471   -1.007  0.9981

P value adjustment: mvt method for 78 tests 
#export tables
# #interpret(eta_squared(micsal.lm), rules = "cohen1992") %>%
#   write.csv(file = "Outputs/Tables/micsal_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
micsal.slopes <- emtrends(micsal.lm, ~age_group, var = "begin_date_year")
# Compare estimated slopes to 0
micsal.slope.contrasts <- test(micsal.slopes) %>% 
  mutate(Species = "Largemouth Bass") %>% 
  rename(Age = age_group)

micsal.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/micsal_emmeans.csv")

Plot raw data

(micsal.length.year.plot <- ggplot(data = micsal %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)
`geom_smooth()` using formula = 'y ~ x'

Marginal Effects

result <- predict_response(micsal.lm, c("begin_date_year", "age_group"))

# plot(result)
# test_predictions(result) %>% 
#   write.csv(file = "Outputs/Tables/micsal_pairwise_length_time_slopes.csv", row.names = F)

(micsal.marginal.plot <- ggpredict(micsal.lm, terms = c("begin_date_year", "age_group")) %>%  
    plot()+
    #stat_poly_eq(use_label("eq"))+
    stat_regline_equation()+
    stat_poly_line()+
    # annotate(geom = "text", label = "y = 77 + 0.07x", x = 2000, y = 224)+
    # annotate(geom = "text", label = "y = 21 + 0.093x", x = 2000, y = 212)+
    # annotate(geom = "text", label = "y = -64 + 0.13x", x = 2000, y = 199)+
    # annotate(geom = "text", label = "y = 230 - 0.028x", x = 2000, y = 182)+
    # annotate(geom = "text", label = "y = 610 - 0.23x", x = 2000, y = 160)+
    # annotate(geom = "text", label = "y = 920 - 0.39x", x = 2000, y = 137)+
    # annotate(geom = "text", label = "y = 1200 - 0.55x", x = 2000, y = 110)+
    # annotate(geom = "text", label = "y = 1700 - 0.83x", x = 2000, y = 80)+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(title = NULL,
         y = "Mean Length-at-Age (mm)",
         x = "Year")+
    guides(fill = guide_legend(title = "Age", reverse = T), color = guide_legend(title = "Age", reverse = T))+
    theme_bw()
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/micsal_marginal_effects_plot.tiff", 
       micsal.marginal.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

Northern Pike

Model

#filter data for only Black Crappie, Pomooxis nigromaculatus 
esoluc <- all.grow.merge %>% filter(species == "northern_pike") %>% 
  filter(!age_group %in% c(11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22), #match age groups in BRTs
         !is.na(age_group), !is.na(begin_date_year), !is.na(length_mean_mm),
         !is.na(log_max_depth), !is.na(logarea))

#linear model
esoluc.lm <- lm(length_mean_mm ~ begin_date_year*age_group + log_max_depth + logarea + doy, data = esoluc)
summary(esoluc.lm)

Call:
lm(formula = length_mean_mm ~ begin_date_year * age_group + log_max_depth + 
    logarea + doy, data = esoluc)

Residuals:
    Min      1Q  Median      3Q     Max 
-489.85  -49.91   -4.95   44.36  624.55 

Coefficients:
                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                  3.374e+03  9.816e+02   3.437 0.000591 ***
begin_date_year             -1.636e+00  4.960e-01  -3.297 0.000982 ***
age_group1                  -8.287e+02  1.039e+03  -0.798 0.424954    
age_group2                  -1.659e+03  1.015e+03  -1.634 0.102255    
age_group3                  -2.223e+03  1.015e+03  -2.190 0.028542 *  
age_group4                  -1.366e+03  1.022e+03  -1.337 0.181332    
age_group5                  -4.319e+02  1.033e+03  -0.418 0.675799    
age_group6                   1.046e+03  1.051e+03   0.995 0.319531    
age_group7                   2.558e+03  1.095e+03   2.336 0.019539 *  
age_group8                   5.336e+03  1.183e+03   4.512 6.53e-06 ***
age_group9                   4.732e+03  1.435e+03   3.296 0.000984 ***
age_group10                  1.905e+03  1.737e+03   1.097 0.272846    
log_max_depth                1.006e+01  1.391e+00   7.234 5.16e-13 ***
logarea                      8.181e+00  6.768e-01  12.088  < 2e-16 ***
doy                          2.626e-01  1.778e-02  14.766  < 2e-16 ***
begin_date_year:age_group1   4.803e-01  5.248e-01   0.915 0.360136    
begin_date_year:age_group2   9.559e-01  5.130e-01   1.864 0.062431 .  
begin_date_year:age_group3   1.277e+00  5.129e-01   2.490 0.012781 *  
begin_date_year:age_group4   8.784e-01  5.163e-01   1.701 0.088902 .  
begin_date_year:age_group5   4.365e-01  5.216e-01   0.837 0.402667    
begin_date_year:age_group6  -2.789e-01  5.305e-01  -0.526 0.599121    
begin_date_year:age_group7  -1.015e+00  5.525e-01  -1.837 0.066275 .  
begin_date_year:age_group8  -2.378e+00  5.961e-01  -3.990 6.68e-05 ***
begin_date_year:age_group9  -2.037e+00  7.217e-01  -2.822 0.004783 ** 
begin_date_year:age_group10 -6.144e-01  8.713e-01  -0.705 0.480734    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 79.22 on 7096 degrees of freedom
  (101 observations deleted due to missingness)
Multiple R-squared:  0.7401,    Adjusted R-squared:  0.7392 
F-statistic:   842 on 24 and 7096 DF,  p-value: < 2.2e-16
#calculate and interpret effect sizes
eta_squared(esoluc.lm)
          begin_date_year                 age_group             log_max_depth                   logarea 
              0.003963165               0.712738629               0.003641321               0.004741566 
                      doy begin_date_year:age_group 
              0.007271462               0.007746663 
#interpret(eta_squared(esoluc.lm), rules = "cohen1992")

#calculate AIC score
AIC(esoluc.lm)
[1] 82504.9
#examine model fit
testDispersion(esoluc.lm)

    DHARMa nonparametric dispersion test via sd of residuals fitted vs. simulated

data:  simulationOutput
dispersion = 0.99729, p-value = 0.928
alternative hypothesis: two.sided

simulation.output <- simulateResiduals(fittedModel = esoluc.lm)

residuals(esoluc.lm)
            1             2             3             4             5             6             7             8 
 2.659525e+01  5.619450e+01 -7.943255e+01  6.931526e+01  1.177336e+02  1.156359e+02  4.770489e+01  6.397266e+01 
            9            10            11            12            13            14            15            16 
 2.049132e+02  1.960052e+02  6.640842e+01  1.905955e+02  8.971069e+01  1.794074e+01  2.559577e+02  1.366532e+02 
           17            18            19            20            21            22            23            24 
 3.896028e+01  1.548345e+02  7.161573e-01  1.960778e+01  4.728282e+01  1.668983e+02  1.639843e+01  7.929778e+01 
           25            26            27            28            29            30            31            32 
 3.092325e+01 -4.115363e+00  3.682882e+01  4.431467e+01  1.747464e+01 -1.181367e-03  4.431467e+01 -6.655363e+00 
           33            34            35            36            37            38            39            40 
-7.621181e+00  2.360453e+01  2.984382e+01 -9.831156e+01  4.613180e+01  2.687798e+00  1.977950e+01 -1.520674e+01 
           41            42            43            44            45            46            47            48 
-5.449170e+01 -9.704156e+01 -6.019758e+01 -2.282674e+01 -8.497170e+01 -1.052826e+02  4.867180e+01 -6.719170e+01 
           49            50            51            52            53            54            55            56 
-8.115258e+01 -9.133961e+01  9.693180e+01 -6.109561e-01 -1.154199e+01  3.532214e+01 -1.166074e-01 -3.648846e+01 
           57            58            59            60            61            62            63            64 
-2.820418e+01 -3.731062e+00 -2.958460e+01 -4.622046e+01  9.786894e+01  2.165405e+00  1.346954e+01  4.011321e+01 
           65            66            67            68            69            70            71            72 
 1.723836e+02 -1.836681e-01 -1.460720e+01 -5.283307e+01 -8.206939e+01 -9.336274e+00 -3.772981e+01 -2.926688e+01 
           73            74            75            76            77            78            79            80 
-3.818098e+00 -2.140060e+01 -2.814011e+01 -1.173970e+02 -1.162123e+02 -1.131243e+02 -8.339984e+01  1.764014e+02 
           81            82            83            84            85            86            87            88 
 1.391589e+02  2.112896e+02  1.230614e+02  2.358889e+01  1.509646e+02  5.575143e+01 -9.431113e+00  4.802732e+01 
           89            90            91            92            93            94            95            96 
 1.503296e+02  1.433814e+02  1.124889e+02  1.073855e+02  2.700171e+01 -1.457531e+02  2.869504e+01  4.429145e-01 
           97            98            99           100           101           102           103           104 
 4.621243e+01 -3.298110e+01 -5.825762e+01  4.554007e+01 -5.967049e+01 -7.930811e+01 -1.090941e+02 -1.822005e+02 
          105           106           107           108           109           110           111           112 
 3.968748e+01 -1.952346e+01 -1.343420e+01 -8.433730e+01  3.801050e+01  2.975879e+01 -7.290730e+01  3.991879e+01 
          113           114           115           116           117           118           119           120 
 9.762693e+01  5.897806e+01 -7.628445e+01 -1.724420e+01 -2.845730e+01 -1.130984e+02  4.245879e+01  2.379795e+01 
          121           122           123           124           125           126           127           128 
 1.136061e+02 -1.208388e+02 -2.986108e+01  4.756610e+01 -4.461081e+00  7.440650e+01 -1.684562e+01  8.281378e+01 
          129           130           131           132           133           134           135           136 
 7.186351e+01  5.747577e+01  3.104158e+01 -7.064371e+01  2.548126e+02  4.704757e+01  7.092916e+01  1.442323e+02 
          137           138           139           140           141           142           143           144 
-5.800016e+00  9.706558e+00 -5.324774e+01 -2.836286e+01  1.150525e+02  3.819226e+01  9.101714e+01 -3.480750e+01 
          145           146           147           148           149           150           151           152 
 4.606089e+01  1.641473e+02  7.197142e+00  1.345250e+01  3.756007e+01  4.745457e+01  9.823344e+01  7.728172e+01 
          153           154           155           156           157           158           159           160 
 2.351027e+02 -2.538436e+01  5.121233e+00  6.076844e+01  1.179217e+02 -4.146656e+01  6.839172e+01  6.386987e+01 
          161           162           163           164           165           166           167           168 
 9.395160e+00  7.371095e+01  8.898031e+01  6.926083e+01  1.570251e+02 -9.543134e+01  1.065724e+02  8.277395e+01 
          169           170           171           172           173           174           175           176 
 1.017293e+02 -2.432274e+01 -2.085630e+01 -5.196312e+01  7.848489e+01 -9.936591e+01 -1.056458e+01 -3.248304e+01 
          177           178           179           180           181           182           183           184 
-7.425660e+01 -9.620346e+01 -1.006067e+02  8.501143e+01 -5.882458e+01 -8.628486e+01 -2.834458e+01  1.851353e+01 
          185           186           187           188           189           190           191           192 
-1.014081e+02  3.466341e+01 -7.534221e+01 -9.054350e+01 -1.577647e+01 -5.201611e+01  4.216028e+01  6.080124e+01 
          193           194           195           196           197           198           199           200 
-2.058373e+01 -2.608259e+01  5.202569e+01  2.020205e+02 -3.791480e+01 -5.762587e+00 -3.602764e+01  1.152051e+01 
          201           202           203           204           205           206           207           208 
 8.320133e+01  2.788755e+02  1.395339e+02  8.548903e+01  1.436361e+02  4.430741e+01  7.696047e+01 -5.911146e+01 
          209           210           211           212           213           214           215           216 
-1.852366e+02  1.052674e+02 -9.328670e-01  2.961413e+01  8.351228e+01 -1.151566e+02  3.122516e+01 -7.398276e+01 
          217           218           219           220           221           222           223           224 
-3.929706e+01 -6.896101e+01  2.310492e+01 -7.063018e+01  5.084179e+01  4.468818e+01  6.358090e+01 -1.094066e+01 
          225           226           227           228           229           230           231           232 
-1.000721e+01  6.751762e+01  3.961803e+01  1.518679e+02  3.607792e+01  6.401792e+01  4.478955e+01  8.673104e+00 
          233           234           235           236           237           238           239           240 
 5.092953e+01 -3.055619e+01  3.984729e+01  1.086373e+02  8.224769e+01  3.125393e+01  1.006105e+02  4.154469e+01 
          241           242           243           244           245           246           247           248 
 2.925492e+02  1.298567e+02  1.147602e+02  7.716769e+01  2.158815e+02  2.637947e+02  1.706292e+02  1.006105e+02 
          249           250           251           252           253           254           255           256 
 1.059425e+02  2.168047e+02  4.120776e+01  9.279343e+01  5.585318e+01  2.073170e+02  5.385293e+01  1.618578e+02 
          257           258           259           260           261           262           263           264 
 7.247343e+01  1.627448e+02  6.279776e+01  7.399743e+01  5.521818e+01  7.015700e+01  1.192080e+02  4.385902e+01 
          265           266           267           268           269           270           271           272 
-4.812463e+01 -2.126302e+01  5.863974e+01  1.277216e+01  4.106101e+00 -1.558402e+01  9.684935e+01 -1.845095e+02 
          273           274           275           276           277           278           279           280 
 1.149437e+01  1.011713e+01 -4.000451e+00  1.054435e+02 -4.608048e+01  1.086709e+00 -2.533326e+01  1.152264e+02 
          281           282           283           284           285           286           287           288 
-1.088416e+02 -1.021832e+02  9.316945e-01 -1.036094e+02 -2.246066e+02 -1.319642e+02  5.249419e+01  8.448909e+01 
          289           290           291           292           293           294           295           296 
-1.470520e+02 -7.011327e+01 -2.581364e+01 -1.141174e+01 -1.177482e+02 -7.498895e+01 -9.992463e+01 -1.100077e+02 
          297           298           299           300           301           302           303           304 
-1.334678e+02 -1.608539e+02 -1.745069e+02 -9.170339e+01  5.953589e+01  3.908583e+01  1.012117e+02  2.571404e+01 
          305           306           307           308           309           310           311           312 
 3.041558e+01 -2.477047e+01  1.137730e+01 -7.586185e+01 -1.163302e+02 -6.884893e+01 -4.715865e+01 -3.729830e+01 
          313           314           315           316           317           318           319           320 
-4.396076e+01  4.340615e+01 -6.382719e+01  2.308615e+01 -3.039465e+01 -3.772100e+01  8.238077e+01  6.070394e+01 
          321           322           323           324           325           326           327           328 
 1.931759e+01  5.080818e+01 -4.280984e+00  9.181295e+01 -3.596193e+01  1.471910e+02  2.428566e+02 -5.986565e+01 
          329           330           331           332           333           334           335           336 
 1.893451e+02  3.916772e+01 -6.801087e+01  8.571449e+01  4.075966e+01  5.594637e+01  3.661604e+01  4.819361e+01 
          337           338           339           340           341           342           343           344 
 9.230915e+01  4.646149e+01  6.093132e+01  9.675829e+00 -1.016960e+02  8.749727e+01  1.150804e+02 -5.908597e+01 
          345           346           347           348           349           350           351           352 
 2.408648e+01  2.727403e+01 -6.524133e+01 -5.590240e+01 -6.393523e+00 -4.329709e+01  7.821800e+00  1.490522e+02 
          353           354           355           356           357           358           359           360 
-7.500942e+01  1.020589e+02  7.658824e+00 -3.182942e+01 -2.282442e+01 -6.448669e-01  1.257656e+02  5.072224e+01 
          361           362           363           364           365           366           367           368 
 1.435656e+01  4.485133e+00 -6.077916e+01 -3.990568e+01  3.213585e+01 -3.819337e+01  2.373921e+01 -3.055553e+01 
          369           370           371           372           373           374           375           376 
-3.099995e+01  5.896512e+00  8.818519e+01  7.118960e+01  1.599959e+00 -4.441746e+01  5.335518e+01 -1.028700e+02 
          377           378           379           380           381           382           383           384 
-3.201595e+01 -2.787040e+01 -7.713375e+00 -3.552746e+01 -2.611053e+01 -5.206996e+01 -7.544995e+01  2.112919e+01 
          385           386           387           388           389           390           391           392 
 6.024947e+01 -2.150835e+02 -3.115574e+00  1.125723e+02  8.096303e+01  2.150947e+01 -4.843490e+00  1.234810e+02 
          393           394           395           396           397           398           399           400 
-2.770349e+01  1.332695e+02 -4.542901e+01  9.701292e+01  9.715363e+01  6.987340e+01  1.502760e+02  9.150959e+01 
          401           402           403           404           405           406           407           408 
 1.227530e+01  2.011067e+02  5.987260e+01  6.102959e+01  3.958030e+01  9.950673e+01 -8.126224e+00  1.646483e+02 
          409           410           411           412           413           414           415           416 
 1.056869e+01 -1.841531e+01 -2.188931e+01 -4.451059e+01  4.397813e+01  7.133234e+00 -3.159531e+01 -4.403303e+01 
          417           418           419           420           421           422           423           424 
-5.149241e+01  1.397291e+01 -6.333687e+01  6.745823e+01 -3.882603e+01 -1.400146e+02  3.338130e+00  9.402723e+01 
          425           426           427           428           429           430           431           432 
 1.681285e+01 -1.161594e+02  1.850300e+02  8.136128e+01 -6.040944e+01 -4.726249e+01  4.420290e+01  5.105191e+01 
          433           434           435           436           437           438           439           440 
 8.804799e+01  1.712742e+01 -5.261329e+00  1.402209e+02  2.814097e+01 -1.544423e+02  2.091643e+02 -3.284696e+01 
          441           442           443           444           445           446           447           448 
-1.920103e+00 -5.329808e+01 -5.863537e+01 -6.473559e+01 -1.045416e+02 -1.245885e+02  1.184341e+00 -2.662808e+01 
          449           450           451           452           453           454           455           456 
-6.471323e+01 -6.623353e+01 -3.333091e+01 -1.659495e+02 -7.755566e+01  5.063379e+01  1.174379e+02  1.865054e+01 
          457           458           459           460           461           462           463           464 
 1.149244e+02  8.917768e+00  7.149943e+01 -3.363445e+00  1.553579e+00 -7.210503e+00 -7.526358e+01  2.979866e+01 
          465           466           467           468           469           470           471           472 
 8.971766e+01  6.685766e+01  7.873888e+01  3.113007e+02 -1.361964e+02 -1.196830e+02  1.090003e+01 -5.783725e+01 
          473           474           475           476           477           478           479           480 
-6.874816e+01  3.256107e+01  7.832149e+01  3.865031e+01  1.067513e+02  1.663124e+01  6.685107e+01 -1.989184e+01 
          481           482           483           484           485           486           487           488 
-3.246969e+01  1.880313e+02  1.203023e+02 -1.787042e+01  5.542107e+01  6.763675e+01 -1.142518e+01  8.643131e+01 
          489           490           491           492           493           494           495           496 
-4.263615e+00  6.978509e+00 -4.617361e+01  9.334764e+01  7.801348e+01  8.825851e+01 -3.619236e+01  8.563778e+01 
          497           498           499           500           501           502           503           504 
 1.262515e+02  1.937090e+02  4.361933e+01 -1.006587e+02  9.356490e+01 -1.438387e+02 -9.303875e+01  4.977673e+01 
          505           506           507           508           509           510           511           512 
 1.134762e+02 -5.369258e+01  5.853671e+01  6.179079e+01  6.876356e+01  1.047948e+02 -9.158590e+01 -9.667651e+01 
          513           514           515           516           517           518           519           520 
-5.628608e+01 -2.344096e+01 -4.803498e+00  8.821493e+01 -7.703038e+01 -5.317646e+01 -9.167107e+01 -4.908864e+01 
          521           522           523           524           525           526           527           528 
 8.922255e+01 -3.311024e+01  6.942974e+01  6.066566e+01  7.135259e+01  9.319230e+01  7.323974e+01 -9.184340e+00 
          529           530           531           532           533           534           535           536 
 5.103259e+01  1.120682e+02  2.963316e+01  7.831974e+01  1.101957e+02 -1.043883e+02  2.723187e+01 -4.115276e+01 
          537           538           539           540           541           542           543           544 
-4.375152e+00  1.848485e+01 -2.591276e+01 -6.089015e+01 -1.424883e+02  1.386475e+02  4.598506e+01  1.957451e+02 
          545           546           547           548           549           550           551           552 
 1.471142e+02  2.532120e+02  2.686130e+01 -2.377648e+01 -4.089471e+01 -5.522157e+01 -4.743286e+01 -6.020266e+01 
          553           554           555           556           557           558           559           560 
 1.500293e+02  1.737050e+01  1.065867e+02 -7.854174e+01 -1.222237e+02 -8.693662e+01 -8.920366e+01 -2.266174e+01 
          561           562           563           564           565           566           567           568 
-2.803282e+01 -7.096786e+01 -4.469330e+01 -8.430881e+01  6.679515e+01  9.220513e+00 -8.366786e+01 -7.855997e+01 
          569           570           571           572           573           574           575           576 
-1.317221e+02 -1.516448e+02  1.231942e+02  1.426847e+02 -8.601063e+01 -1.046288e+02  1.790742e+02  8.592257e+01 
          577           578           579           580           581           582           583           584 
 1.131242e+02  2.257338e+02 -5.120818e+01 -2.225894e+01 -2.146794e+01 -1.806369e+02  3.401819e+00 -2.162505e+00 
          585           586           587           588           589           590           591           592 
-1.772443e+01 -1.899323e+01 -1.040179e+02  5.134376e+01  4.611618e+01  1.440696e+02  3.451615e+01  1.676200e+02 
          593           594           595           596           597           598           599           600 
 7.970709e+01  7.151618e+01  1.040193e+02  4.298281e+01 -2.855900e+01  5.337576e+01  3.837471e+00  7.584117e+01 
          601           602           603           604           605           606           607           608 
 9.708036e+01  1.160118e+02  5.731001e+00  4.033709e+01  1.087695e+02  1.660588e+02  2.816615e+01 -6.369994e+00 
          609           610           611           612           613           614           615           616 
-6.517118e+01 -4.479879e+01 -4.739118e+01 -7.882432e+01 -6.062626e+01  7.906215e+00 -3.215118e+01  1.801382e+01 
          617           618           619           620           621           622           623           624 
 8.410621e+01  3.311102e+01  7.886649e+01  4.808751e+00  4.303329e+01  5.252686e+01  1.427301e+02 -6.813082e+01 
          625           626           627           628           629           630           631           632 
-1.034792e+02 -1.106195e+02 -1.383181e+02 -7.278672e+01  7.731929e+01 -4.985303e+01 -3.351860e+01 -1.446106e+02 
          633           634           635           636           637           638           639           640 
-1.695208e+02 -1.196528e+02 -4.503259e+01 -1.332512e+02 -5.530082e+00 -2.278654e+02  1.143310e+02  4.228526e+01 
          641           642           643           644           645           646           647           648 
 1.425124e+02 -5.146886e+00 -2.192988e+01 -4.149881e+00  1.269350e+00  4.824935e+01  5.958372e+01  5.053674e+01 
          649           650           651           652           653           654           655           656 
 2.122112e+01  1.874032e+02  1.385034e+02  4.900414e+01  3.020137e+00 -1.968149e+01  8.418560e+01  1.033206e+02 
          657           658           659           660           661           662           663           664 
 1.249198e+02 -6.557172e+01  5.451802e-01 -6.808101e+01  5.380828e+01 -6.718815e+01 -4.581010e+00 -1.028661e+02 
          665           666           667           668           669           670           671           672 
-7.074820e+00 -7.212744e+01  5.373839e+01  4.862819e+01  4.017677e+01  3.662266e+01  9.519024e+01  9.650310e+01 
          673           674           675           676           677           678           679           680 
-6.407732e+01 -1.438551e+02  1.166747e+02 -2.142804e+01 -8.315275e+01 -1.188990e+02 -8.315186e+01 -4.179086e+01 
          681           682           683           684           685           686           687           688 
-2.541045e+01  4.242996e+01  1.432698e+01  1.445290e+01  1.051498e+02  1.128454e+02 -3.079588e+01 -3.773136e+01 
          689           690           691           692           693           694           695           696 
-6.646564e+00 -1.608576e+01  1.309791e+01 -1.977451e+01 -2.227165e+01 -1.165823e+02 -2.213930e+01 -7.775077e+01 
          697           698           699           700           701           702           703           704 
-5.887204e+01 -1.047197e+02 -7.077654e+01  4.693425e+01  6.049914e+01  3.793863e+01  4.782572e+01  3.478742e+01 
          705           706           707           708           709           710           711           712 
 2.441090e+01  4.410988e+01 -5.243716e+01 -8.105495e+01  2.519899e+01  5.374105e+00 -2.725748e+01  5.813263e+01 
          713           714           715           716           717           718           719           720 
 5.673995e+01  1.355445e+01 -5.474153e+01 -6.294502e+01 -3.255968e+01  5.028360e-01  2.077962e+01  3.475748e+01 
          721           722           723           724           725           726           727           728 
 2.600174e+01  1.053896e+02  1.102056e+02  7.081253e+01  5.398014e+01  4.425154e+01  1.748111e+01  1.198300e+01 
          729           730           731           732           733           734           735           736 
-6.122807e+01 -1.209392e+02 -3.140091e+01 -5.497276e+01  7.308011e+01  6.529808e+01  2.500463e+02  6.037421e+01 
          737           738           739           740           741           742           743           744 
 3.963548e+01  9.194688e+01  8.892872e+00  7.602297e+01  7.373783e-01 -3.157584e+01 -5.119954e+01  2.959791e+01 
          745           746           747           748           749           750           751           752 
-1.878938e+01 -1.723897e+01  3.760871e+00  3.431364e+01 -4.100361e+01 -5.487014e+00 -2.411295e+00 -2.002220e+01 
          753           754           755           756           757           758           759           760 
 2.382353e+01  2.327254e+01  2.150210e+00 -1.108688e+02  1.038216e+02  9.764385e+00 -3.823196e+01 -2.363731e+01 
          761           762           763           764           765           766           767           768 
-5.523014e+00  2.260199e+01 -7.690865e+00  1.111401e+02  1.144271e+01 -2.138782e+01  1.185238e+02  4.280349e+01 
          769           770           771           772           773           774           775           776 
 1.174851e+02  1.319449e+02  8.740961e+01  2.028926e+02  3.470376e+01 -3.765136e-01  2.265842e+01  1.242396e+02 
          777           778           779           780           781           782           783           784 
 1.659420e+02  1.877584e+02  6.590489e+01  3.914961e+01 -7.466426e+01  8.085835e+01 -6.036729e+00  2.025903e+02 
          785           786           787           788           789           790           791           792 
 6.615957e+01  8.516037e+01  1.539357e+02 -2.074165e+01 -4.391979e+01  7.100994e+01 -1.048085e+02  1.425349e+01 
          793           794           795           796           797           798           799           800 
 9.145853e+01  2.565363e+01  3.348566e+01  2.332080e+01  6.561234e+01  9.941802e+01  8.143705e+01  3.233158e+01 
          801           802           803           804           805           806           807           808 
-5.958742e+01  1.348437e+02 -5.126123e+01 -2.526504e+01 -5.084379e+01 -1.397234e+02 -1.256504e+01 -2.101277e+01 
          809           810           811           812           813           814           815           816 
 1.269562e+02  5.392294e+01  1.475087e+02  1.394070e+02  2.542537e+02 -6.815111e+01 -2.819940e+01 -3.947898e+01 
          817           818           819           820           821           822           823           824 
-2.401283e+01 -4.723047e+01  1.437852e+01  2.569215e+02 -2.407825e+01 -6.335409e+01 -3.295795e+01 -3.949582e+01 
          825           826           827           828           829           830           831           832 
-2.743568e+01  1.166312e+02  2.616549e+01  1.144067e+02  2.331239e+00  7.538822e+00  1.958774e+02  6.354993e+01 
          833           834           835           836           837           838           839           840 
 5.397791e+01  1.261882e+01  1.018965e+02  2.644574e+02 -1.952863e+00  6.040305e+01  6.854998e+01 -2.535445e+01 
          841           842           843           844           845           846           847           848 
-1.973286e+01  2.103305e+01 -5.110021e+00  6.332205e+01  5.203151e+01  1.067265e+02  1.264067e+02  1.402567e+01 
          849           850           851           852           853           854           855           856 
-1.282414e+02  2.496160e+02  1.490624e+02  1.069952e+02 -1.261540e+01  1.298303e+02  1.158330e+02  2.210646e+02 
          857           858           859           860           861           862           863           864 
 7.903032e+01  1.132930e+02  7.647984e+01  9.123551e+01  1.017907e+01  1.266777e+01 -1.542462e+02  5.253126e+01 
          865           866           867           868           869           870           871           872 
 2.055355e+02  8.541026e+01  1.271907e+01  8.100776e-01 -8.199893e+01  1.720376e+01  1.031498e+02  6.126351e+01 
          873           874           875           876           877           878           879           880 
 8.256907e+01  7.447008e+01 -8.215890e+01 -3.627893e+01 -9.466236e+00 -5.967049e+01 -5.825762e+01  4.554007e+01 
          881           882           883           884           885           886           887           888 
-5.587627e+01 -3.002733e+01 -3.174179e+01 -1.798018e+01 -3.258294e+00  4.285872e+01 -1.626038e+01 -1.275354e+01 
          889           890           891           892           893           894           895           896 
-4.721001e+00  9.144891e+00  1.139872e+02 -9.108100e+01  1.524891e+00 -9.877582e+01 -1.651340e+02 -2.009109e+02 
          897           898           899           900           901           902           903           904 
-4.621379e+01 -6.512082e+01 -6.887842e+01 -7.868673e+01 -9.443729e+01 -3.835089e+01  6.752552e+00 -4.988082e+01 
          905           906           907           908           909           910           911           912 
-3.204842e+01 -7.676248e+01 -1.016340e+02 -2.059909e+02 -6.251049e+00 -8.984816e+00 -1.291572e+02 -1.333141e+02 
          913           914           915           916           917           918           919           920 
-5.559783e+01 -5.982033e+00 -1.184034e+02 -2.736099e+01 -5.360703e+01 -3.195424e+01 -2.084964e+01 -3.992596e+01 
          921           922           923           924           925           926           927           928 
 2.740487e+02  2.710047e+02  5.365480e+01  1.028226e+02  2.501512e+02 -3.736606e+01 -4.901619e+01 -7.176977e+01 
          929           930           931           932           933           934           935           936 
-4.402916e+01 -3.193480e+01  4.018559e+01  5.204913e+01  7.903307e+00 -1.967508e+00 -3.029764e+01  2.374423e+01 
          937           938           939           940           941           942           943           944 
-2.994411e+00  3.807913e+01  3.697916e+01  6.474913e+01 -4.229577e+01 -6.593686e+01 -6.927039e+01 -1.115493e+02 
          945           946           947           948           949           950           951           952 
-1.185011e+02 -7.318212e+01  4.374159e+01 -8.909625e+01 -1.036645e+02 -1.088486e+02 -1.081496e+02 -9.831617e+01 
          953           954           955           956           957           958           959           960 
-1.317263e+02 -2.226445e+02 -9.074015e+01 -8.922170e+01 -1.040276e+02 -1.227691e+02 -9.712424e+01  1.896751e+01 
          961           962           963           964           965           966           967           968 
-9.184942e+01 -1.229276e+02 -1.271502e+02 -8.747175e+01 -1.601248e+02 -1.159912e+02 -9.906025e+01 -6.741435e+01 
          969           970           971           972           973           974           975           976 
-1.490844e+02 -9.932051e+01  1.637759e+01  7.278451e+01  9.779111e+01  6.643280e+01  4.556030e+01  5.969428e+01 
          977           978           979           980           981           982           983           984 
-2.476180e+01  8.574712e+01  3.005770e+01 -1.178587e+01  7.892625e+01  1.736803e+01 -7.036608e+01  1.017248e+01 
          985           986           987           988           989           990           991           992 
 7.578803e+01  2.076549e+01 -2.210608e+01  3.362958e+01  7.716032e+00  2.203549e+01 -6.782608e+01 -2.445122e+02 
          993           994           995           996           997           998           999          1000 
-8.399709e+01 -4.376110e+01 -2.013670e+02 -7.566329e+01 -1.199657e+02  1.390746e-01 -4.838757e+01 -8.821110e+01 
 [ reached 'max' / getOption("max.print") -- omitted 6121 entries ]
residuals(esoluc.lm, quantileFunction = qnorm)
            1             2             3             4             5             6             7             8 
 2.659525e+01  5.619450e+01 -7.943255e+01  6.931526e+01  1.177336e+02  1.156359e+02  4.770489e+01  6.397266e+01 
            9            10            11            12            13            14            15            16 
 2.049132e+02  1.960052e+02  6.640842e+01  1.905955e+02  8.971069e+01  1.794074e+01  2.559577e+02  1.366532e+02 
           17            18            19            20            21            22            23            24 
 3.896028e+01  1.548345e+02  7.161573e-01  1.960778e+01  4.728282e+01  1.668983e+02  1.639843e+01  7.929778e+01 
           25            26            27            28            29            30            31            32 
 3.092325e+01 -4.115363e+00  3.682882e+01  4.431467e+01  1.747464e+01 -1.181367e-03  4.431467e+01 -6.655363e+00 
           33            34            35            36            37            38            39            40 
-7.621181e+00  2.360453e+01  2.984382e+01 -9.831156e+01  4.613180e+01  2.687798e+00  1.977950e+01 -1.520674e+01 
           41            42            43            44            45            46            47            48 
-5.449170e+01 -9.704156e+01 -6.019758e+01 -2.282674e+01 -8.497170e+01 -1.052826e+02  4.867180e+01 -6.719170e+01 
           49            50            51            52            53            54            55            56 
-8.115258e+01 -9.133961e+01  9.693180e+01 -6.109561e-01 -1.154199e+01  3.532214e+01 -1.166074e-01 -3.648846e+01 
           57            58            59            60            61            62            63            64 
-2.820418e+01 -3.731062e+00 -2.958460e+01 -4.622046e+01  9.786894e+01  2.165405e+00  1.346954e+01  4.011321e+01 
           65            66            67            68            69            70            71            72 
 1.723836e+02 -1.836681e-01 -1.460720e+01 -5.283307e+01 -8.206939e+01 -9.336274e+00 -3.772981e+01 -2.926688e+01 
           73            74            75            76            77            78            79            80 
-3.818098e+00 -2.140060e+01 -2.814011e+01 -1.173970e+02 -1.162123e+02 -1.131243e+02 -8.339984e+01  1.764014e+02 
           81            82            83            84            85            86            87            88 
 1.391589e+02  2.112896e+02  1.230614e+02  2.358889e+01  1.509646e+02  5.575143e+01 -9.431113e+00  4.802732e+01 
           89            90            91            92            93            94            95            96 
 1.503296e+02  1.433814e+02  1.124889e+02  1.073855e+02  2.700171e+01 -1.457531e+02  2.869504e+01  4.429145e-01 
           97            98            99           100           101           102           103           104 
 4.621243e+01 -3.298110e+01 -5.825762e+01  4.554007e+01 -5.967049e+01 -7.930811e+01 -1.090941e+02 -1.822005e+02 
          105           106           107           108           109           110           111           112 
 3.968748e+01 -1.952346e+01 -1.343420e+01 -8.433730e+01  3.801050e+01  2.975879e+01 -7.290730e+01  3.991879e+01 
          113           114           115           116           117           118           119           120 
 9.762693e+01  5.897806e+01 -7.628445e+01 -1.724420e+01 -2.845730e+01 -1.130984e+02  4.245879e+01  2.379795e+01 
          121           122           123           124           125           126           127           128 
 1.136061e+02 -1.208388e+02 -2.986108e+01  4.756610e+01 -4.461081e+00  7.440650e+01 -1.684562e+01  8.281378e+01 
          129           130           131           132           133           134           135           136 
 7.186351e+01  5.747577e+01  3.104158e+01 -7.064371e+01  2.548126e+02  4.704757e+01  7.092916e+01  1.442323e+02 
          137           138           139           140           141           142           143           144 
-5.800016e+00  9.706558e+00 -5.324774e+01 -2.836286e+01  1.150525e+02  3.819226e+01  9.101714e+01 -3.480750e+01 
          145           146           147           148           149           150           151           152 
 4.606089e+01  1.641473e+02  7.197142e+00  1.345250e+01  3.756007e+01  4.745457e+01  9.823344e+01  7.728172e+01 
          153           154           155           156           157           158           159           160 
 2.351027e+02 -2.538436e+01  5.121233e+00  6.076844e+01  1.179217e+02 -4.146656e+01  6.839172e+01  6.386987e+01 
          161           162           163           164           165           166           167           168 
 9.395160e+00  7.371095e+01  8.898031e+01  6.926083e+01  1.570251e+02 -9.543134e+01  1.065724e+02  8.277395e+01 
          169           170           171           172           173           174           175           176 
 1.017293e+02 -2.432274e+01 -2.085630e+01 -5.196312e+01  7.848489e+01 -9.936591e+01 -1.056458e+01 -3.248304e+01 
          177           178           179           180           181           182           183           184 
-7.425660e+01 -9.620346e+01 -1.006067e+02  8.501143e+01 -5.882458e+01 -8.628486e+01 -2.834458e+01  1.851353e+01 
          185           186           187           188           189           190           191           192 
-1.014081e+02  3.466341e+01 -7.534221e+01 -9.054350e+01 -1.577647e+01 -5.201611e+01  4.216028e+01  6.080124e+01 
          193           194           195           196           197           198           199           200 
-2.058373e+01 -2.608259e+01  5.202569e+01  2.020205e+02 -3.791480e+01 -5.762587e+00 -3.602764e+01  1.152051e+01 
          201           202           203           204           205           206           207           208 
 8.320133e+01  2.788755e+02  1.395339e+02  8.548903e+01  1.436361e+02  4.430741e+01  7.696047e+01 -5.911146e+01 
          209           210           211           212           213           214           215           216 
-1.852366e+02  1.052674e+02 -9.328670e-01  2.961413e+01  8.351228e+01 -1.151566e+02  3.122516e+01 -7.398276e+01 
          217           218           219           220           221           222           223           224 
-3.929706e+01 -6.896101e+01  2.310492e+01 -7.063018e+01  5.084179e+01  4.468818e+01  6.358090e+01 -1.094066e+01 
          225           226           227           228           229           230           231           232 
-1.000721e+01  6.751762e+01  3.961803e+01  1.518679e+02  3.607792e+01  6.401792e+01  4.478955e+01  8.673104e+00 
          233           234           235           236           237           238           239           240 
 5.092953e+01 -3.055619e+01  3.984729e+01  1.086373e+02  8.224769e+01  3.125393e+01  1.006105e+02  4.154469e+01 
          241           242           243           244           245           246           247           248 
 2.925492e+02  1.298567e+02  1.147602e+02  7.716769e+01  2.158815e+02  2.637947e+02  1.706292e+02  1.006105e+02 
          249           250           251           252           253           254           255           256 
 1.059425e+02  2.168047e+02  4.120776e+01  9.279343e+01  5.585318e+01  2.073170e+02  5.385293e+01  1.618578e+02 
          257           258           259           260           261           262           263           264 
 7.247343e+01  1.627448e+02  6.279776e+01  7.399743e+01  5.521818e+01  7.015700e+01  1.192080e+02  4.385902e+01 
          265           266           267           268           269           270           271           272 
-4.812463e+01 -2.126302e+01  5.863974e+01  1.277216e+01  4.106101e+00 -1.558402e+01  9.684935e+01 -1.845095e+02 
          273           274           275           276           277           278           279           280 
 1.149437e+01  1.011713e+01 -4.000451e+00  1.054435e+02 -4.608048e+01  1.086709e+00 -2.533326e+01  1.152264e+02 
          281           282           283           284           285           286           287           288 
-1.088416e+02 -1.021832e+02  9.316945e-01 -1.036094e+02 -2.246066e+02 -1.319642e+02  5.249419e+01  8.448909e+01 
          289           290           291           292           293           294           295           296 
-1.470520e+02 -7.011327e+01 -2.581364e+01 -1.141174e+01 -1.177482e+02 -7.498895e+01 -9.992463e+01 -1.100077e+02 
          297           298           299           300           301           302           303           304 
-1.334678e+02 -1.608539e+02 -1.745069e+02 -9.170339e+01  5.953589e+01  3.908583e+01  1.012117e+02  2.571404e+01 
          305           306           307           308           309           310           311           312 
 3.041558e+01 -2.477047e+01  1.137730e+01 -7.586185e+01 -1.163302e+02 -6.884893e+01 -4.715865e+01 -3.729830e+01 
          313           314           315           316           317           318           319           320 
-4.396076e+01  4.340615e+01 -6.382719e+01  2.308615e+01 -3.039465e+01 -3.772100e+01  8.238077e+01  6.070394e+01 
          321           322           323           324           325           326           327           328 
 1.931759e+01  5.080818e+01 -4.280984e+00  9.181295e+01 -3.596193e+01  1.471910e+02  2.428566e+02 -5.986565e+01 
          329           330           331           332           333           334           335           336 
 1.893451e+02  3.916772e+01 -6.801087e+01  8.571449e+01  4.075966e+01  5.594637e+01  3.661604e+01  4.819361e+01 
          337           338           339           340           341           342           343           344 
 9.230915e+01  4.646149e+01  6.093132e+01  9.675829e+00 -1.016960e+02  8.749727e+01  1.150804e+02 -5.908597e+01 
          345           346           347           348           349           350           351           352 
 2.408648e+01  2.727403e+01 -6.524133e+01 -5.590240e+01 -6.393523e+00 -4.329709e+01  7.821800e+00  1.490522e+02 
          353           354           355           356           357           358           359           360 
-7.500942e+01  1.020589e+02  7.658824e+00 -3.182942e+01 -2.282442e+01 -6.448669e-01  1.257656e+02  5.072224e+01 
          361           362           363           364           365           366           367           368 
 1.435656e+01  4.485133e+00 -6.077916e+01 -3.990568e+01  3.213585e+01 -3.819337e+01  2.373921e+01 -3.055553e+01 
          369           370           371           372           373           374           375           376 
-3.099995e+01  5.896512e+00  8.818519e+01  7.118960e+01  1.599959e+00 -4.441746e+01  5.335518e+01 -1.028700e+02 
          377           378           379           380           381           382           383           384 
-3.201595e+01 -2.787040e+01 -7.713375e+00 -3.552746e+01 -2.611053e+01 -5.206996e+01 -7.544995e+01  2.112919e+01 
          385           386           387           388           389           390           391           392 
 6.024947e+01 -2.150835e+02 -3.115574e+00  1.125723e+02  8.096303e+01  2.150947e+01 -4.843490e+00  1.234810e+02 
          393           394           395           396           397           398           399           400 
-2.770349e+01  1.332695e+02 -4.542901e+01  9.701292e+01  9.715363e+01  6.987340e+01  1.502760e+02  9.150959e+01 
          401           402           403           404           405           406           407           408 
 1.227530e+01  2.011067e+02  5.987260e+01  6.102959e+01  3.958030e+01  9.950673e+01 -8.126224e+00  1.646483e+02 
          409           410           411           412           413           414           415           416 
 1.056869e+01 -1.841531e+01 -2.188931e+01 -4.451059e+01  4.397813e+01  7.133234e+00 -3.159531e+01 -4.403303e+01 
          417           418           419           420           421           422           423           424 
-5.149241e+01  1.397291e+01 -6.333687e+01  6.745823e+01 -3.882603e+01 -1.400146e+02  3.338130e+00  9.402723e+01 
          425           426           427           428           429           430           431           432 
 1.681285e+01 -1.161594e+02  1.850300e+02  8.136128e+01 -6.040944e+01 -4.726249e+01  4.420290e+01  5.105191e+01 
          433           434           435           436           437           438           439           440 
 8.804799e+01  1.712742e+01 -5.261329e+00  1.402209e+02  2.814097e+01 -1.544423e+02  2.091643e+02 -3.284696e+01 
          441           442           443           444           445           446           447           448 
-1.920103e+00 -5.329808e+01 -5.863537e+01 -6.473559e+01 -1.045416e+02 -1.245885e+02  1.184341e+00 -2.662808e+01 
          449           450           451           452           453           454           455           456 
-6.471323e+01 -6.623353e+01 -3.333091e+01 -1.659495e+02 -7.755566e+01  5.063379e+01  1.174379e+02  1.865054e+01 
          457           458           459           460           461           462           463           464 
 1.149244e+02  8.917768e+00  7.149943e+01 -3.363445e+00  1.553579e+00 -7.210503e+00 -7.526358e+01  2.979866e+01 
          465           466           467           468           469           470           471           472 
 8.971766e+01  6.685766e+01  7.873888e+01  3.113007e+02 -1.361964e+02 -1.196830e+02  1.090003e+01 -5.783725e+01 
          473           474           475           476           477           478           479           480 
-6.874816e+01  3.256107e+01  7.832149e+01  3.865031e+01  1.067513e+02  1.663124e+01  6.685107e+01 -1.989184e+01 
          481           482           483           484           485           486           487           488 
-3.246969e+01  1.880313e+02  1.203023e+02 -1.787042e+01  5.542107e+01  6.763675e+01 -1.142518e+01  8.643131e+01 
          489           490           491           492           493           494           495           496 
-4.263615e+00  6.978509e+00 -4.617361e+01  9.334764e+01  7.801348e+01  8.825851e+01 -3.619236e+01  8.563778e+01 
          497           498           499           500           501           502           503           504 
 1.262515e+02  1.937090e+02  4.361933e+01 -1.006587e+02  9.356490e+01 -1.438387e+02 -9.303875e+01  4.977673e+01 
          505           506           507           508           509           510           511           512 
 1.134762e+02 -5.369258e+01  5.853671e+01  6.179079e+01  6.876356e+01  1.047948e+02 -9.158590e+01 -9.667651e+01 
          513           514           515           516           517           518           519           520 
-5.628608e+01 -2.344096e+01 -4.803498e+00  8.821493e+01 -7.703038e+01 -5.317646e+01 -9.167107e+01 -4.908864e+01 
          521           522           523           524           525           526           527           528 
 8.922255e+01 -3.311024e+01  6.942974e+01  6.066566e+01  7.135259e+01  9.319230e+01  7.323974e+01 -9.184340e+00 
          529           530           531           532           533           534           535           536 
 5.103259e+01  1.120682e+02  2.963316e+01  7.831974e+01  1.101957e+02 -1.043883e+02  2.723187e+01 -4.115276e+01 
          537           538           539           540           541           542           543           544 
-4.375152e+00  1.848485e+01 -2.591276e+01 -6.089015e+01 -1.424883e+02  1.386475e+02  4.598506e+01  1.957451e+02 
          545           546           547           548           549           550           551           552 
 1.471142e+02  2.532120e+02  2.686130e+01 -2.377648e+01 -4.089471e+01 -5.522157e+01 -4.743286e+01 -6.020266e+01 
          553           554           555           556           557           558           559           560 
 1.500293e+02  1.737050e+01  1.065867e+02 -7.854174e+01 -1.222237e+02 -8.693662e+01 -8.920366e+01 -2.266174e+01 
          561           562           563           564           565           566           567           568 
-2.803282e+01 -7.096786e+01 -4.469330e+01 -8.430881e+01  6.679515e+01  9.220513e+00 -8.366786e+01 -7.855997e+01 
          569           570           571           572           573           574           575           576 
-1.317221e+02 -1.516448e+02  1.231942e+02  1.426847e+02 -8.601063e+01 -1.046288e+02  1.790742e+02  8.592257e+01 
          577           578           579           580           581           582           583           584 
 1.131242e+02  2.257338e+02 -5.120818e+01 -2.225894e+01 -2.146794e+01 -1.806369e+02  3.401819e+00 -2.162505e+00 
          585           586           587           588           589           590           591           592 
-1.772443e+01 -1.899323e+01 -1.040179e+02  5.134376e+01  4.611618e+01  1.440696e+02  3.451615e+01  1.676200e+02 
          593           594           595           596           597           598           599           600 
 7.970709e+01  7.151618e+01  1.040193e+02  4.298281e+01 -2.855900e+01  5.337576e+01  3.837471e+00  7.584117e+01 
          601           602           603           604           605           606           607           608 
 9.708036e+01  1.160118e+02  5.731001e+00  4.033709e+01  1.087695e+02  1.660588e+02  2.816615e+01 -6.369994e+00 
          609           610           611           612           613           614           615           616 
-6.517118e+01 -4.479879e+01 -4.739118e+01 -7.882432e+01 -6.062626e+01  7.906215e+00 -3.215118e+01  1.801382e+01 
          617           618           619           620           621           622           623           624 
 8.410621e+01  3.311102e+01  7.886649e+01  4.808751e+00  4.303329e+01  5.252686e+01  1.427301e+02 -6.813082e+01 
          625           626           627           628           629           630           631           632 
-1.034792e+02 -1.106195e+02 -1.383181e+02 -7.278672e+01  7.731929e+01 -4.985303e+01 -3.351860e+01 -1.446106e+02 
          633           634           635           636           637           638           639           640 
-1.695208e+02 -1.196528e+02 -4.503259e+01 -1.332512e+02 -5.530082e+00 -2.278654e+02  1.143310e+02  4.228526e+01 
          641           642           643           644           645           646           647           648 
 1.425124e+02 -5.146886e+00 -2.192988e+01 -4.149881e+00  1.269350e+00  4.824935e+01  5.958372e+01  5.053674e+01 
          649           650           651           652           653           654           655           656 
 2.122112e+01  1.874032e+02  1.385034e+02  4.900414e+01  3.020137e+00 -1.968149e+01  8.418560e+01  1.033206e+02 
          657           658           659           660           661           662           663           664 
 1.249198e+02 -6.557172e+01  5.451802e-01 -6.808101e+01  5.380828e+01 -6.718815e+01 -4.581010e+00 -1.028661e+02 
          665           666           667           668           669           670           671           672 
-7.074820e+00 -7.212744e+01  5.373839e+01  4.862819e+01  4.017677e+01  3.662266e+01  9.519024e+01  9.650310e+01 
          673           674           675           676           677           678           679           680 
-6.407732e+01 -1.438551e+02  1.166747e+02 -2.142804e+01 -8.315275e+01 -1.188990e+02 -8.315186e+01 -4.179086e+01 
          681           682           683           684           685           686           687           688 
-2.541045e+01  4.242996e+01  1.432698e+01  1.445290e+01  1.051498e+02  1.128454e+02 -3.079588e+01 -3.773136e+01 
          689           690           691           692           693           694           695           696 
-6.646564e+00 -1.608576e+01  1.309791e+01 -1.977451e+01 -2.227165e+01 -1.165823e+02 -2.213930e+01 -7.775077e+01 
          697           698           699           700           701           702           703           704 
-5.887204e+01 -1.047197e+02 -7.077654e+01  4.693425e+01  6.049914e+01  3.793863e+01  4.782572e+01  3.478742e+01 
          705           706           707           708           709           710           711           712 
 2.441090e+01  4.410988e+01 -5.243716e+01 -8.105495e+01  2.519899e+01  5.374105e+00 -2.725748e+01  5.813263e+01 
          713           714           715           716           717           718           719           720 
 5.673995e+01  1.355445e+01 -5.474153e+01 -6.294502e+01 -3.255968e+01  5.028360e-01  2.077962e+01  3.475748e+01 
          721           722           723           724           725           726           727           728 
 2.600174e+01  1.053896e+02  1.102056e+02  7.081253e+01  5.398014e+01  4.425154e+01  1.748111e+01  1.198300e+01 
          729           730           731           732           733           734           735           736 
-6.122807e+01 -1.209392e+02 -3.140091e+01 -5.497276e+01  7.308011e+01  6.529808e+01  2.500463e+02  6.037421e+01 
          737           738           739           740           741           742           743           744 
 3.963548e+01  9.194688e+01  8.892872e+00  7.602297e+01  7.373783e-01 -3.157584e+01 -5.119954e+01  2.959791e+01 
          745           746           747           748           749           750           751           752 
-1.878938e+01 -1.723897e+01  3.760871e+00  3.431364e+01 -4.100361e+01 -5.487014e+00 -2.411295e+00 -2.002220e+01 
          753           754           755           756           757           758           759           760 
 2.382353e+01  2.327254e+01  2.150210e+00 -1.108688e+02  1.038216e+02  9.764385e+00 -3.823196e+01 -2.363731e+01 
          761           762           763           764           765           766           767           768 
-5.523014e+00  2.260199e+01 -7.690865e+00  1.111401e+02  1.144271e+01 -2.138782e+01  1.185238e+02  4.280349e+01 
          769           770           771           772           773           774           775           776 
 1.174851e+02  1.319449e+02  8.740961e+01  2.028926e+02  3.470376e+01 -3.765136e-01  2.265842e+01  1.242396e+02 
          777           778           779           780           781           782           783           784 
 1.659420e+02  1.877584e+02  6.590489e+01  3.914961e+01 -7.466426e+01  8.085835e+01 -6.036729e+00  2.025903e+02 
          785           786           787           788           789           790           791           792 
 6.615957e+01  8.516037e+01  1.539357e+02 -2.074165e+01 -4.391979e+01  7.100994e+01 -1.048085e+02  1.425349e+01 
          793           794           795           796           797           798           799           800 
 9.145853e+01  2.565363e+01  3.348566e+01  2.332080e+01  6.561234e+01  9.941802e+01  8.143705e+01  3.233158e+01 
          801           802           803           804           805           806           807           808 
-5.958742e+01  1.348437e+02 -5.126123e+01 -2.526504e+01 -5.084379e+01 -1.397234e+02 -1.256504e+01 -2.101277e+01 
          809           810           811           812           813           814           815           816 
 1.269562e+02  5.392294e+01  1.475087e+02  1.394070e+02  2.542537e+02 -6.815111e+01 -2.819940e+01 -3.947898e+01 
          817           818           819           820           821           822           823           824 
-2.401283e+01 -4.723047e+01  1.437852e+01  2.569215e+02 -2.407825e+01 -6.335409e+01 -3.295795e+01 -3.949582e+01 
          825           826           827           828           829           830           831           832 
-2.743568e+01  1.166312e+02  2.616549e+01  1.144067e+02  2.331239e+00  7.538822e+00  1.958774e+02  6.354993e+01 
          833           834           835           836           837           838           839           840 
 5.397791e+01  1.261882e+01  1.018965e+02  2.644574e+02 -1.952863e+00  6.040305e+01  6.854998e+01 -2.535445e+01 
          841           842           843           844           845           846           847           848 
-1.973286e+01  2.103305e+01 -5.110021e+00  6.332205e+01  5.203151e+01  1.067265e+02  1.264067e+02  1.402567e+01 
          849           850           851           852           853           854           855           856 
-1.282414e+02  2.496160e+02  1.490624e+02  1.069952e+02 -1.261540e+01  1.298303e+02  1.158330e+02  2.210646e+02 
          857           858           859           860           861           862           863           864 
 7.903032e+01  1.132930e+02  7.647984e+01  9.123551e+01  1.017907e+01  1.266777e+01 -1.542462e+02  5.253126e+01 
          865           866           867           868           869           870           871           872 
 2.055355e+02  8.541026e+01  1.271907e+01  8.100776e-01 -8.199893e+01  1.720376e+01  1.031498e+02  6.126351e+01 
          873           874           875           876           877           878           879           880 
 8.256907e+01  7.447008e+01 -8.215890e+01 -3.627893e+01 -9.466236e+00 -5.967049e+01 -5.825762e+01  4.554007e+01 
          881           882           883           884           885           886           887           888 
-5.587627e+01 -3.002733e+01 -3.174179e+01 -1.798018e+01 -3.258294e+00  4.285872e+01 -1.626038e+01 -1.275354e+01 
          889           890           891           892           893           894           895           896 
-4.721001e+00  9.144891e+00  1.139872e+02 -9.108100e+01  1.524891e+00 -9.877582e+01 -1.651340e+02 -2.009109e+02 
          897           898           899           900           901           902           903           904 
-4.621379e+01 -6.512082e+01 -6.887842e+01 -7.868673e+01 -9.443729e+01 -3.835089e+01  6.752552e+00 -4.988082e+01 
          905           906           907           908           909           910           911           912 
-3.204842e+01 -7.676248e+01 -1.016340e+02 -2.059909e+02 -6.251049e+00 -8.984816e+00 -1.291572e+02 -1.333141e+02 
          913           914           915           916           917           918           919           920 
-5.559783e+01 -5.982033e+00 -1.184034e+02 -2.736099e+01 -5.360703e+01 -3.195424e+01 -2.084964e+01 -3.992596e+01 
          921           922           923           924           925           926           927           928 
 2.740487e+02  2.710047e+02  5.365480e+01  1.028226e+02  2.501512e+02 -3.736606e+01 -4.901619e+01 -7.176977e+01 
          929           930           931           932           933           934           935           936 
-4.402916e+01 -3.193480e+01  4.018559e+01  5.204913e+01  7.903307e+00 -1.967508e+00 -3.029764e+01  2.374423e+01 
          937           938           939           940           941           942           943           944 
-2.994411e+00  3.807913e+01  3.697916e+01  6.474913e+01 -4.229577e+01 -6.593686e+01 -6.927039e+01 -1.115493e+02 
          945           946           947           948           949           950           951           952 
-1.185011e+02 -7.318212e+01  4.374159e+01 -8.909625e+01 -1.036645e+02 -1.088486e+02 -1.081496e+02 -9.831617e+01 
          953           954           955           956           957           958           959           960 
-1.317263e+02 -2.226445e+02 -9.074015e+01 -8.922170e+01 -1.040276e+02 -1.227691e+02 -9.712424e+01  1.896751e+01 
          961           962           963           964           965           966           967           968 
-9.184942e+01 -1.229276e+02 -1.271502e+02 -8.747175e+01 -1.601248e+02 -1.159912e+02 -9.906025e+01 -6.741435e+01 
          969           970           971           972           973           974           975           976 
-1.490844e+02 -9.932051e+01  1.637759e+01  7.278451e+01  9.779111e+01  6.643280e+01  4.556030e+01  5.969428e+01 
          977           978           979           980           981           982           983           984 
-2.476180e+01  8.574712e+01  3.005770e+01 -1.178587e+01  7.892625e+01  1.736803e+01 -7.036608e+01  1.017248e+01 
          985           986           987           988           989           990           991           992 
 7.578803e+01  2.076549e+01 -2.210608e+01  3.362958e+01  7.716032e+00  2.203549e+01 -6.782608e+01 -2.445122e+02 
          993           994           995           996           997           998           999          1000 
-8.399709e+01 -4.376110e+01 -2.013670e+02 -7.566329e+01 -1.199657e+02  1.390746e-01 -4.838757e+01 -8.821110e+01 
 [ reached 'max' / getOption("max.print") -- omitted 6121 entries ]
plot(esoluc.lm)

Post-hoc comparisons

esoluc.emm <- emmeans(esoluc.lm, ~ begin_date_year*age_group)
pairs(esoluc.emm, simple = "age_group")
begin_date_year = 1990:
 contrast                 estimate    SE   df t.ratio p.value
 age_group0 - age_group1   -127.21  9.58 7096 -13.277  <.0001
 age_group0 - age_group2   -243.47  9.38 7096 -25.966  <.0001
 age_group0 - age_group3   -318.87  9.36 7096 -34.072  <.0001
 age_group0 - age_group4   -382.12  9.41 7096 -40.626  <.0001
 age_group0 - age_group5   -436.90  9.49 7096 -46.045  <.0001
 age_group0 - age_group6   -490.91  9.65 7096 -50.880  <.0001
 age_group0 - age_group7   -537.66 10.00 7096 -53.700  <.0001
 age_group0 - age_group8   -602.60 10.80 7096 -56.010  <.0001
 age_group0 - age_group9   -678.24 12.70 7096 -53.285  <.0001
 age_group0 - age_group10  -682.31 16.50 7096 -41.454  <.0001
 age_group1 - age_group2   -116.26  3.80 7096 -30.591  <.0001
 age_group1 - age_group3   -191.66  3.74 7096 -51.231  <.0001
 age_group1 - age_group4   -254.91  3.84 7096 -66.407  <.0001
 age_group1 - age_group5   -309.68  4.03 7096 -76.906  <.0001
 age_group1 - age_group6   -363.70  4.38 7096 -83.027  <.0001
 age_group1 - age_group7   -410.44  5.13 7096 -80.022  <.0001
 age_group1 - age_group8   -475.38  6.45 7096 -73.721  <.0001
 age_group1 - age_group9   -551.03  9.37 7096 -58.819  <.0001
 age_group1 - age_group10  -555.09 14.00 7096 -39.546  <.0001
 age_group2 - age_group3    -75.40  3.14 7096 -24.037  <.0001
 age_group2 - age_group4   -138.65  3.25 7096 -42.666  <.0001
 age_group2 - age_group5   -193.43  3.47 7096 -55.777  <.0001
 age_group2 - age_group6   -247.44  3.87 7096 -63.911  <.0001
 age_group2 - age_group7   -294.19  4.70 7096 -62.580  <.0001
 age_group2 - age_group8   -359.13  6.11 7096 -58.764  <.0001
 age_group2 - age_group9   -434.77  9.14 7096 -47.578  <.0001
 age_group2 - age_group10  -438.83 13.90 7096 -31.605  <.0001
 age_group3 - age_group4    -63.25  3.18 7096 -19.922  <.0001
 age_group3 - age_group5   -118.02  3.40 7096 -34.735  <.0001
 age_group3 - age_group6   -172.04  3.81 7096 -45.177  <.0001
 age_group3 - age_group7   -218.79  4.65 7096 -47.060  <.0001
 age_group3 - age_group8   -283.73  6.07 7096 -46.739  <.0001
 age_group3 - age_group9   -359.37  9.11 7096 -39.444  <.0001
 age_group3 - age_group10  -363.43 13.90 7096 -26.207  <.0001
 age_group4 - age_group5    -54.77  3.50 7096 -15.656  <.0001
 age_group4 - age_group6   -108.79  3.90 7096 -27.914  <.0001
 age_group4 - age_group7   -155.53  4.72 7096 -32.937  <.0001
 age_group4 - age_group8   -220.47  6.13 7096 -35.995  <.0001
 age_group4 - age_group9   -296.11  9.15 7096 -32.373  <.0001
 age_group4 - age_group10  -300.18 13.90 7096 -21.607  <.0001
 age_group5 - age_group6    -54.02  4.08 7096 -13.244  <.0001
 age_group5 - age_group7   -100.76  4.87 7096 -20.682  <.0001
 age_group5 - age_group8   -165.70  6.24 7096 -26.552  <.0001
 age_group5 - age_group9   -241.34  9.22 7096 -26.165  <.0001
 age_group5 - age_group10  -245.41 13.90 7096 -17.600  <.0001
 age_group6 - age_group7    -46.74  5.17 7096  -9.050  <.0001
 age_group6 - age_group8   -111.69  6.47 7096 -17.259  <.0001
 age_group6 - age_group9   -187.33  9.38 7096 -19.968  <.0001
 age_group6 - age_group10  -191.39 14.00 7096 -13.623  <.0001
 age_group7 - age_group8    -64.94  7.00 7096  -9.280  <.0001
 age_group7 - age_group9   -140.58  9.75 7096 -14.417  <.0001
 age_group7 - age_group10  -144.65 14.30 7096 -10.116  <.0001
 age_group8 - age_group9    -75.64 10.50 7096  -7.204  <.0001
 age_group8 - age_group10   -79.71 14.80 7096  -5.377  <.0001
 age_group9 - age_group10    -4.07 16.30 7096  -0.249  1.0000

P value adjustment: tukey method for comparing a family of 11 estimates 
test(pairs(esoluc.emm, by = "begin_date_year"), by = NULL, adjust = "mvt")
 contrast                 begin_date_year estimate    SE   df t.ratio p.value
 age_group0 - age_group1             1990  -127.21  9.58 7096 -13.277  <.0001
 age_group0 - age_group2             1990  -243.47  9.38 7096 -25.966  <.0001
 age_group0 - age_group3             1990  -318.87  9.36 7096 -34.072  <.0001
 age_group0 - age_group4             1990  -382.12  9.41 7096 -40.626  <.0001
 age_group0 - age_group5             1990  -436.90  9.49 7096 -46.045  <.0001
 age_group0 - age_group6             1990  -490.91  9.65 7096 -50.880  <.0001
 age_group0 - age_group7             1990  -537.66 10.00 7096 -53.700  <.0001
 age_group0 - age_group8             1990  -602.60 10.80 7096 -56.010  <.0001
 age_group0 - age_group9             1990  -678.24 12.70 7096 -53.285  <.0001
 age_group0 - age_group10            1990  -682.31 16.50 7096 -41.454  <.0001
 age_group1 - age_group2             1990  -116.26  3.80 7096 -30.591  <.0001
 age_group1 - age_group3             1990  -191.66  3.74 7096 -51.231  <.0001
 age_group1 - age_group4             1990  -254.91  3.84 7096 -66.407  <.0001
 age_group1 - age_group5             1990  -309.68  4.03 7096 -76.906  <.0001
 age_group1 - age_group6             1990  -363.70  4.38 7096 -83.027  <.0001
 age_group1 - age_group7             1990  -410.44  5.13 7096 -80.022  <.0001
 age_group1 - age_group8             1990  -475.38  6.45 7096 -73.721  <.0001
 age_group1 - age_group9             1990  -551.03  9.37 7096 -58.819  <.0001
 age_group1 - age_group10            1990  -555.09 14.00 7096 -39.546  <.0001
 age_group2 - age_group3             1990   -75.40  3.14 7096 -24.037  <.0001
 age_group2 - age_group4             1990  -138.65  3.25 7096 -42.666  <.0001
 age_group2 - age_group5             1990  -193.43  3.47 7096 -55.777  <.0001
 age_group2 - age_group6             1990  -247.44  3.87 7096 -63.911  <.0001
 age_group2 - age_group7             1990  -294.19  4.70 7096 -62.580  <.0001
 age_group2 - age_group8             1990  -359.13  6.11 7096 -58.764  <.0001
 age_group2 - age_group9             1990  -434.77  9.14 7096 -47.578  <.0001
 age_group2 - age_group10            1990  -438.83 13.90 7096 -31.605  <.0001
 age_group3 - age_group4             1990   -63.25  3.18 7096 -19.922  <.0001
 age_group3 - age_group5             1990  -118.02  3.40 7096 -34.735  <.0001
 age_group3 - age_group6             1990  -172.04  3.81 7096 -45.177  <.0001
 age_group3 - age_group7             1990  -218.79  4.65 7096 -47.060  <.0001
 age_group3 - age_group8             1990  -283.73  6.07 7096 -46.739  <.0001
 age_group3 - age_group9             1990  -359.37  9.11 7096 -39.444  <.0001
 age_group3 - age_group10            1990  -363.43 13.90 7096 -26.207  <.0001
 age_group4 - age_group5             1990   -54.77  3.50 7096 -15.656  <.0001
 age_group4 - age_group6             1990  -108.79  3.90 7096 -27.914  <.0001
 age_group4 - age_group7             1990  -155.53  4.72 7096 -32.937  <.0001
 age_group4 - age_group8             1990  -220.47  6.13 7096 -35.995  <.0001
 age_group4 - age_group9             1990  -296.11  9.15 7096 -32.373  <.0001
 age_group4 - age_group10            1990  -300.18 13.90 7096 -21.607  <.0001
 age_group5 - age_group6             1990   -54.02  4.08 7096 -13.244  <.0001
 age_group5 - age_group7             1990  -100.76  4.87 7096 -20.682  <.0001
 age_group5 - age_group8             1990  -165.70  6.24 7096 -26.552  <.0001
 age_group5 - age_group9             1990  -241.34  9.22 7096 -26.165  <.0001
 age_group5 - age_group10            1990  -245.41 13.90 7096 -17.600  <.0001
 age_group6 - age_group7             1990   -46.74  5.17 7096  -9.050  <.0001
 age_group6 - age_group8             1990  -111.69  6.47 7096 -17.259  <.0001
 age_group6 - age_group9             1990  -187.33  9.38 7096 -19.968  <.0001
 age_group6 - age_group10            1990  -191.39 14.00 7096 -13.623  <.0001
 age_group7 - age_group8             1990   -64.94  7.00 7096  -9.280  <.0001
 age_group7 - age_group9             1990  -140.58  9.75 7096 -14.417  <.0001
 age_group7 - age_group10            1990  -144.65 14.30 7096 -10.116  <.0001
 age_group8 - age_group9             1990   -75.64 10.50 7096  -7.204  <.0001
 age_group8 - age_group10            1990   -79.71 14.80 7096  -5.377  <.0001
 age_group9 - age_group10            1990    -4.07 16.30 7096  -0.249  1.0000

P value adjustment: mvt method for 55 tests 
#export tables
# #interpret(eta_squared(esoluc.lm), rules = "cohen1992") %>%
#   write.csv(file = "Outputs/Tables/esoluc_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
esoluc.slopes <- emtrends(esoluc.lm, ~age_group, var = "begin_date_year")
# Compare estimated slopes to 0
esoluc.slope.contrasts <- test(esoluc.slopes) %>% 
  mutate(Species = "Northern Pike") %>% 
  rename(Age = age_group)

esoluc.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/esoluc_emmeans.csv")

Plot raw data

(esoluc.length.year.plot <- ggplot(data = esoluc %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)
`geom_smooth()` using formula = 'y ~ x'

Marginal Effects

result <- predict_response(esoluc.lm, c("begin_date_year", "age_group"))

# plot(result)
# test_predictions(result) %>% 
#   write.csv(file = "Outputs/Tables/esoluc_pairwise_length_time_slopes.csv", row.names = F)

(esoluc.marginal.plot <- ggpredict(esoluc.lm, terms = c("begin_date_year", "age_group")) %>%  
    plot()+
    #stat_poly_eq(use_label("eq"))+
    stat_regline_equation()+
    stat_poly_line()+
    # annotate(geom = "text", label = "y = 1.3E4 - 5.5x", x = 1950, y = 1300)+
    # annotate(geom = "text", label = "y = 9.1E3 - 4.1x", x = 1950, y = 1150)+
    # annotate(geom = "text", label = "y = 8.9E3 - 4.1x", x = 1950, y = 1050)+
    # annotate(geom = "text", label = "y = 6.5E3 - 2.9x", x = 1950, y = 925)+
    # annotate(geom = "text", label = "y = 5.2E3 - 2.2x", x = 1950, y = 850)+
    # annotate(geom = "text", label = "y = 3.4E3 - 1.4x", x = 1950, y = 750)+
    # annotate(geom = "text", label = "y = 2.6E3 - 1x", x = 1950, y = 680)+
    # annotate(geom = "text", label = "y = 1.8E3 - 0.64x", x = 1950, y = 615)+
    # annotate(geom = "text", label = "y = 2.4E3 - 0.99x", x = 1950, y = 550)+
    # annotate(geom = "text", label = "y = 3.2E3 - 1.4x", x = 1950, y = 460)+
    # annotate(geom = "text", label = "y = 4.3E3 - 2.1x", x = 1950, y = 375)+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(title = NULL,
         y = "Mean Length-at-Age (mm)",
         x = "Year")+
    guides(fill = guide_legend(title = "Age", reverse = T), color = guide_legend(title = "Age", reverse = T))+
    theme_bw()
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/esoluc_marginal_effects_plot.tiff", 
       esoluc.marginal.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

Pumpkinseed Sunfish

Model

#filter data for only Black Crappie, Pomooxis nigromaculatus 
lepgib <- all.grow.merge %>% filter(species == "pumpkinseed_sunfish") %>% 
  filter(age_group %in% c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), #match age groups in BRTs
         !is.na(age_group), !is.na(begin_date_year), !is.na(length_mean_mm),
         !is.na(log_max_depth), !is.na(logarea))

#linear model
lepgib.lm <- lm(length_mean_mm ~ begin_date_year*age_group + log_max_depth + logarea + doy, data = lepgib)
summary(lepgib.lm)

Call:
lm(formula = length_mean_mm ~ begin_date_year * age_group + log_max_depth + 
    logarea + doy, data = lepgib)

Residuals:
   Min     1Q Median     3Q    Max 
-80.82 -14.39  -0.49  13.69 597.58 

Coefficients:
                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                  1.246e+03  1.285e+02   9.698  < 2e-16 ***
begin_date_year             -5.950e-01  6.452e-02  -9.222  < 2e-16 ***
age_group2                  -5.104e+02  1.493e+02  -3.418 0.000634 ***
age_group3                  -9.978e+02  1.442e+02  -6.922 4.87e-12 ***
age_group4                  -1.310e+03  1.458e+02  -8.989  < 2e-16 ***
age_group5                  -1.465e+03  1.508e+02  -9.714  < 2e-16 ***
age_group6                  -1.482e+03  1.625e+02  -9.117  < 2e-16 ***
age_group7                  -1.615e+03  1.844e+02  -8.758  < 2e-16 ***
age_group8                  -1.640e+03  2.488e+02  -6.594 4.60e-11 ***
age_group9                  -1.247e+03  3.283e+02  -3.798 0.000147 ***
age_group10                 -1.516e+03  5.598e+02  -2.707 0.006801 ** 
log_max_depth               -1.107e+00  4.146e-01  -2.670 0.007598 ** 
logarea                      1.928e+00  2.204e-01   8.749  < 2e-16 ***
doy                          3.925e-02  6.534e-03   6.007 1.99e-09 ***
begin_date_year:age_group2   2.707e-01  7.508e-02   3.606 0.000313 ***
begin_date_year:age_group3   5.287e-01  7.247e-02   7.296 3.31e-13 ***
begin_date_year:age_group4   6.965e-01  7.327e-02   9.505  < 2e-16 ***
begin_date_year:age_group5   7.826e-01  7.579e-02  10.326  < 2e-16 ***
begin_date_year:age_group6   7.970e-01  8.161e-02   9.767  < 2e-16 ***
begin_date_year:age_group7   8.693e-01  9.255e-02   9.393  < 2e-16 ***
begin_date_year:age_group8   8.881e-01  1.246e-01   7.128 1.12e-12 ***
begin_date_year:age_group9   6.951e-01  1.643e-01   4.230 2.37e-05 ***
begin_date_year:age_group10  8.328e-01  2.799e-01   2.976 0.002935 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 22.86 on 6610 degrees of freedom
  (54 observations deleted due to missingness)
Multiple R-squared:  0.6946,    Adjusted R-squared:  0.6936 
F-statistic: 683.4 on 22 and 6610 DF,  p-value: < 2.2e-16
#calculate and interpret effect sizes
eta_squared(lepgib.lm)
          begin_date_year                 age_group             log_max_depth                   logarea 
              0.010860387               0.667589003               0.000213458               0.002978306 
                      doy begin_date_year:age_group 
              0.002634652               0.010339550 
#interpret(eta_squared(lepgib.lm), rules = "cohen1992")

#calculate AIC score
AIC(lepgib.lm)
[1] 60360.85
#examine model fit
testDispersion(lepgib.lm)

    DHARMa nonparametric dispersion test via sd of residuals fitted vs. simulated

data:  simulationOutput
dispersion = 0.9975, p-value = 0.928
alternative hypothesis: two.sided

simulation.output <- simulateResiduals(fittedModel = lepgib.lm)

residuals(lepgib.lm)
           1            2            3            4            5            6            7            8            9 
  4.22419131  55.54215226  47.57597800  18.42718756  77.04684610 -17.82794076  -7.00647259 -10.60475526  -8.07371855 
          10           11           12           13           14           15           16           17           18 
-10.88703132  -8.62421877  60.94558044 -24.69835903 -37.96679017 -10.34427555 -33.77270669 -10.62038396  -1.91685873 
          19           20           21           22           23           24           25           26           27 
-13.90613115 -19.59593925 -56.57103706  25.61178539  25.93445435  16.22753598   6.35338360   0.64700045  -7.40066750 
          28           29           30           31           32           33           34           35           36 
-18.15033026  19.81828568  21.08828568  10.88903583  22.36150019  11.59484992   8.31404060  15.50350019  26.15751658 
          37           38           39           40           41           42           43           44           45 
  7.46737394  12.57986883  23.44818325 -23.85929273 -14.68050187 -14.86598688 -11.26827461   0.08207162 -43.43848342 
          46           47           48           49           50           51           52           53           54 
  4.36949813  15.12500641 -21.38117388 -25.97189424 -37.96880296 -42.71680096 -35.39042374 -56.99914409 -29.20938415 
          55           56           57           58           59           60           61           62           63 
-16.88063600  -7.97001626 -25.92527477 -35.70442255 -52.23314291  42.47114959  46.63537878  44.16448293  35.46652937 
          64           65           66           67           68           69           70           71           72 
 17.38237483   9.38718950  21.60135740  42.82537878 -30.08065649 -16.95978351   0.66105905 -19.49978351   1.96250518 
          73           74           75           76           77           78           79           80           81 
 11.60741110 -23.11989653   9.06741110  40.63093632  27.36250518  -6.17258890  -2.54906368 -20.89749482 -20.57989653 
          82           83           84           85           86           87           88           89           90 
 10.41488887 -10.39623935 -17.38577404  -8.95304448  18.03488887 -17.01838221   0.25488887 -10.92860004 -15.11942535 
          91           92           93           94           95           96           97           98           99 
-26.33195472   6.64278642 -16.93371106 -25.90838846 -39.03195472 -28.55435643 -39.24942535  19.38804528   9.54564357 
         100          101          102          103          104          105          106          107          108 
-17.01838846 -34.46704880 -47.35352358 -41.25435643  -1.03030818   2.67830407 -11.80796147 -16.17556296   8.72567126 
         109          110          111          112          113          114          115          116          117 
 -7.48169593   8.77696788   9.12969182   0.89203853   1.60443704  -0.93308385   1.10567126  19.98547351   2.30706716 
         118          119          120          121          122          123          124          125          126 
-15.33357555 -60.88382807 -14.09244016  -4.42683882   4.44697415   2.56491728   7.62619692  11.41577305   5.18995687 
         127          128          129          130          131          132          133          134          135 
-16.04942850   9.46503526  30.70886100  33.73340390  12.85170193  26.47552767  -0.97992944  11.24303526  23.08886100 
         136          137          138          139          140          141          142          143          144 
  6.21673723  22.16503526  21.39552767  -8.13433371  -7.26645911  10.35424974  33.18538514  46.26904895  29.07275233 
         145          146          147          148          149          150          151          152          153 
 28.63010623  18.14399722  36.74404895  34.15275233  32.01677290  -8.20049814  -6.97460096   2.74222485 -15.47409243 
         154          155          156          157          158          159          160          161          162 
-14.59460096 -14.59460096 -20.55409243 -16.45599821 -13.62678975 -14.77129391  17.24671599  27.58239402  17.02442899 
         163          164          165          166          167          168          169          170          171 
-17.01345641 -11.46929391  13.42022249  23.71191783 -20.68234530   4.61737275  23.94307963 -32.53093932  12.93641296 
         172          173          174          175          176          177          178          179          180 
 33.50906068 -19.72278975 -31.28129391  66.52906068 -16.64496980   1.76128635   3.64608622   6.98988703  21.88221487 
         181          182          183          184          185          186          187          188          189 
 13.64451794  -6.48496980 -21.09871365  -9.75946934  13.19877591  15.95554820   6.84128635  44.85053066  22.34277591 
         190          191          192          193          194          195          196          197          198 
 32.46554820  -3.57280345  -9.43355578 -13.84073256 -14.88096211 -17.94430782  -9.53749625 -16.99851774  -5.62355578 
         199          200          201          202          203          204          205          206          207 
 -5.44667639  -3.33930782 -15.24761827  -6.02057317  -6.83851774  -2.70430782   0.78148226 -19.52178556 -17.06724609 
         208          209          210          211          212          213          214          215          216 
  4.05180815 -16.92613498  25.92586147  13.55723317  28.12083424  36.88938764  43.68684418  24.83387528  27.15661162 
         217          218          219          220          221          222          223          224          225 
 10.79655474  61.09559233  46.18759433 -11.10362343  24.18175011  57.36973117  41.96940916  42.14297031  26.91509947 
         226          227          228          229          230          231          232          233          234 
 26.63708345  59.74940916  49.76297031 -18.97611926 -25.48450578   4.87775011  43.39973117  34.34940916  37.90963698 
         235          236          237          238          239          240          241          242          243 
-26.85331669  29.14493947  14.32218377  28.39042903 -10.34331669  17.71493947  36.81932663  23.31042903   3.19696345 
         244          245          246          247          248          249          250          251          252 
 11.02627280  11.14718377  20.77042903  -7.54429564 -12.90908611  -4.04487104  -2.94322828  -7.49478995   5.40228735 
         253          254          255          256          257          258          259          260          261 
  3.11478318  -5.92284327 -14.94504404 -13.02718422 -24.27149392 -24.05293481 -42.52965835 -11.28062076 -15.30290448 
         262          263          264          265          266          267          268          269          270 
-10.44096635 -17.70293481 -69.21837871  46.85195872  10.93772953  20.76120872  37.60772953  -0.49227047  -1.14689070 
         271          272          273          274          275          276          277          278          279 
 -1.03238204  16.44620262   8.65208631  17.88366837  20.44935271 -12.02197129  11.13927864  23.43120262   3.36041965 
         280          281          282          283          284          285          286          287          288 
 25.66241837  16.95685271  23.53802871   3.99541965  10.60685271 -43.31215042 -20.44009425  -4.99772568   7.21908589 
         289          290          291          292          293          294          295          296          297 
-15.96030698 -27.43715042 -26.09736698 -20.66105901 -41.67103613 -28.48026268 -14.21193560 -24.00364031 -33.15215042 
         298          299          300          301          302          303          304          305          306 
 -2.03439235 -16.27103613 -11.44461296  10.68963135   8.67120994  17.35464889   6.07505460   5.70038704   8.87534564 
         307          308          309          310          311          312          313          314          315 
 20.94787660  25.99064889   9.96361863  -2.22682499  -8.05558897 -11.43586911 -15.63561296  12.50361863  32.21376544 
         316          317          318          319          320          321          322          323          324 
  7.89729066  27.90193240  23.69379096   4.71035982  15.18795810  52.56328348  21.55193240  17.97879096  -8.46121149 
         325          326          327          328          329          330          331          332          333 
  1.16743744   4.14622332  25.70960838  12.53497843  15.47899899  15.37761124   7.17964132 -18.24697362  -8.13827024 
         334          335          336          337          338          339          340          341          342 
 14.70241699   7.40436257 -16.52702535   0.80302638 -19.56827024 -14.84784628 -14.14880607  -6.48782502  -9.90781369 
         343          344          345          346          347          348          349          350          351 
 -2.45291921  -0.32412338  -7.37547274   8.55374746 -14.99547274 -35.90949168   8.56587662   3.60434078   5.74828781 
         352          353          354          355          356          357          358          359          360 
 -3.30259728  14.97781116  15.12684522   0.81934448  22.38128836  17.43142713   4.72060136  -0.84925280  -1.85926937 
         361          362          363          364          365          366          367          368          369 
-14.11345905  10.97934448  30.00128836   8.54142713   1.33393469  -7.19925280  14.76128836   8.54142713   8.95393469 
         370          371          372          373          374          375          376          377          378 
  5.50074720  -6.93926937  30.00128836  13.62142713 -13.90606531   1.69074720  21.11128836  11.49393469 -11.77857287 
         379          380          381          382          383          384          385          386          387 
 23.67934448 -49.11722544 -21.54208610 -23.08547630 -42.30443672 -28.79722544  10.58547483   3.30950876   0.48472529 
         388          389          390          391          392          393          394          395          396 
 -5.92577946 -12.69400717 -16.57031620 -34.55537935 -44.37194757  -0.14562236 -12.71635737 -17.08018876 -12.60035656 
         397          398          399          400          401          402          403          404          405 
-20.39447286 -22.68814080 -26.48303980  -5.50853046 -10.28728053 -11.02894122 -25.78009864 -14.15276318 -15.41675333 
         406          407          408          409          410          411          412          413          414 
-19.11373693  -9.87597482 -19.98908872   5.15461531 -24.72191366  12.14944262   6.74975132  12.66481919  -1.05960110 
         415          416          417          418          419          420          421          422          423 
  6.93392902   5.23685684 -29.26987814 -32.30055738   5.62086243  16.47481919  14.18039890  17.09392902   4.94105127 
         424          425          426          427          428          429          430          431          432 
-14.52055738  -4.81024786  -9.71381488  -6.68426719  -8.47888464  -5.09221798   2.14373359  -2.43958119  -5.09221798 
         433          434          435          436          437          438          439          440          441 
 -1.34876641  35.58486348  25.64081239  33.98976601  36.81561363  41.01523048  31.95156253  16.97605306  11.73460523 
         442          443          444          445          446          447          448          449          450 
 -6.11952769 -45.09946466   0.73086975  18.08460523  -2.30952769 -22.44156283 -15.77913025   2.84460523  -0.85156283 
         451          452          453          454          455          456          457          458          459 
-11.23279800  -4.34913025 -28.13827920   1.71778131  12.62579770  32.94579770  12.62579770  29.93435667  40.33688821 
         460          461          462          463          464          465          466          467          468 
 11.86701002  44.57714614  39.45097169  50.17585697  50.84172184  54.96851032 -19.00135357  32.64536082  52.36122569 
         469          470          471          472          473          474          475          476          477 
 52.32197584  25.45100529 -15.82291347 -20.72552828 -42.02269301   5.09175544  -2.89036833   1.54262354 -44.30649027 
         478          479          480          481          482          483          484          485          486 
 -6.99194737 -29.68521305 -24.17651927 -17.74618722 -14.17630492 -28.06608407 -18.20327664 -16.23627504 -10.08081097 
         487          488          489          490          491          492          493          494          495 
-12.39579739   2.15889072 -29.88372703 -32.27180319 -31.76976369 -23.95597913 -33.09192727 -18.40575867  -7.14728615 
         496          497          498          499          500          501          502          503          504 
 -4.30317326  -4.94966776  -5.17334255   3.51459786 -18.55754399 -13.83966776 -10.43477113 -13.26479608   6.38592244 
         505          506          507          508          509          510          511          512          513 
  9.30423780  -9.82588542 -23.03636902 -34.43546733 -25.42356711 -15.93667263 -15.83987680 -33.67466921  -9.90705411 
         514          515          516          517          518          519          520          521          522 
-26.66775482 -18.96164329 -10.19926767 -10.58730576  -4.80857410 -10.26097693 -43.53987859 -18.01911650 -33.29838475 
         523          524          525          526          527          528          529          530          531 
-30.19741615 -30.98287326   3.92888555  31.44326555  18.52866769  10.53820144   4.88416630   2.65802730  14.84859889 
         532          533          534          535          536          537          538          539          540 
 10.16626447  -3.94740111  -5.38966564  16.62659889  21.39416630   3.65684391  -7.18945271   1.46956785   1.11684391 
         541          542          543          544          545          546          547          548          549 
-31.95445271 -16.31043215  22.63303717  14.96174054   5.10437335   4.80174054 -20.19423889  13.99437335  -9.28821759 
         550          551          552          553          554          555          556          557          558 
-14.49960165 -27.28781504 -25.36551773 -18.20050343 -15.16505325  -3.33419739  -4.23210300  32.63285573  26.67809435 
         559          560          561          562          563          564          565          566          567 
 27.83220567  16.29185367   5.36755770  25.94385367  15.47679522  18.02785573  -9.16412787   9.09498351   1.03233740 
         568          569          570          571          572          573          574          575          576 
 -5.41905035  -8.47531589 -11.57291738   3.21961346  -4.04766260   3.16831684  -3.41266260  -3.95291738   6.29632047 
         577          578          579          580          581          582          583          584          585 
 -1.53493205 -10.25547502  -4.43693213   1.15317086   1.81060622 -17.48534192 -40.77472487  24.25614323  22.09135637 
         586          587          588          589          590          591          592          593          594 
 25.65540822 -13.79780046 -31.92397473 -44.13943183  32.21210652 -21.45705031 -49.10822458 -61.17322458   6.72608861 
         595          596          597          598          599          600          601          602          603 
 -0.25528823  -9.01515628   8.32219762 -22.32878716 -22.58237301  -9.90898794  -1.07028457 -26.06626400   0.50234824 
         604          605          606          607          608          609          610          611          612 
-18.70848185  -2.80617495  -7.98895449 -16.39020015  23.69920920 -11.38880027  12.53915333 -14.72688670  -9.70861024 
         613          614          615          616          617          618          619          620          621 
 -4.85899726 -12.74957265  -5.68657065   8.07464063   5.01374973  24.73499403  25.93390595  24.51698131  13.00841729 
         622          623          624          625          626          627          628          629          630 
  4.17807500   9.49499403  19.94653770   4.16708306   2.02013689 -20.38625027 -22.92625027   0.29374396  28.59812413 
         631          632          633          634          635          636          637          638          639 
 24.80779240   0.95217954  -3.60972995 -17.48625604 107.60452883  15.61590191   4.91112573 217.69884621   7.18527005 
         640          641          642          643          644          645          646          647          648 
 16.16452883 597.57779240  21.27217954  -8.35357082  31.15779240   9.09027005  21.69368519  15.41278933  14.44066911 
         649          650          651          652          653          654          655          656          657 
  8.71136368  31.92278933  33.80816911  21.41136368  23.38701852  -1.09721067  36.65136368  13.22701852  -3.63721067 
         658          659          660          661          662          663          664          665          666 
-10.39967551 -18.98624253 -15.49909167   3.22787819 -21.62559181  23.70766662  25.25843743  19.52381721   8.39701178 
         667          668          669          670          671          672          673          674          675 
 46.29864524  27.51766662  16.36843743  16.30447734  14.55650196  13.85603017   5.19553025  26.76286518  14.12558565 
         676          677          678          679          680          681          682          683          684 
 14.84130768  30.44960296  14.95109285   3.53314902 -18.06890715  29.17960296  32.73109285  11.35551759  14.68232916 
         685          686          687          688          689          690          691          692          693 
 29.60293630 -28.21685098 -14.04448241 -29.31602672  11.95475814  39.20502012  32.02802172  26.46904386  28.05724234 
         694          695          696          697          698          699          700          701          702 
  9.80302172  17.06240886  22.11475814  17.91665850   8.56809148  48.67150075  32.54960039  24.87486236   3.97881553 
         703          704          705          706          707          708          709          710          711 
 51.21150075  33.81960039  25.50986236  14.52286396  17.88986236  20.73150075  41.43960039 -36.21670776  10.46450800 
         712          713          714          715          716          717          718          719          720 
 -3.32105766 -25.09549200 -28.72105766   1.49750927  -8.40105766  -5.62988166  11.95057870  45.06996551  59.92430994 
         721          722          723          724          725          726          727          728          729 
 60.85258107  36.36849967  15.52651606  36.66449760  36.48151606  31.29570675  35.84651606  23.67570675  21.42449760 
         730          731          732          733          734          735          736          737          738 
-34.12756085   9.27516633 -27.68972578 -29.02581165 -12.95017973  -2.54547782 -23.59778828 -12.55366625   8.04715360 
         739          740          741          742          743          744          745          746          747 
  4.43952218 -13.15668774 -35.30972578 -54.19490256  49.94775660  35.37362147  19.18040995 -20.49945393 -15.46562838 
         748          749          750          751          752          753          754          755          756 
-13.37083991 -20.11537045 -18.90789436 -12.87612270 -54.55808976 -51.05795364   8.99285579 -60.45820171 -70.25739229 
         757          758          759          760          761          762          763          764          765 
 -2.48696348 -11.47719267 -18.73581290 -14.38332412 -18.70610709 -16.56535836  -9.97800736 -10.46649802 -12.65902409 
         766          767          768          769          770          771          772          773          774 
  9.44440247 -15.19902409  -8.33559753  22.47296299  22.01447938   7.55767007   6.26940247  15.59379632   9.56847938 
         775          776          777          778          779          780          781          782          783 
  3.24506148 -12.03418837 -29.66515431 -56.73120728   2.43226586 -23.91134222  -9.53343822 -33.51440416   3.16656178 
         784          785          786          787          788          789          790          791          792 
-25.89440416 -33.91045713 -15.90725874  32.06989819  11.95549190  -4.57322845 -15.21547051  17.03549190 -15.21547051 
         793          794          795          796          797          798          799          800          801 
-12.34346851  -2.46861075   2.00158115  16.67315001  12.41874829  25.34567938  31.06671626  16.15805592  -2.23175219 
         802          803          804          805          806          807          808          809          810 
 -2.37684999  -0.36591838  31.69567938   3.45805592 -13.23841885 -36.66684999  32.48466892  35.65070563  36.90139286 
         811          812          813          814          815          816          817          818          819 
 36.16500510  26.97040623  26.83613807  40.11560644  -1.35346126  -8.75386382 -43.17524787 -23.36679459   1.19155603 
         820          821          822          823          824          825          826          827          828 
 20.56794795   9.54585195   6.73155268   4.21883304  15.99523876  14.17869810   9.50660210   3.94063616   2.90958319 
         829          830          831          832          833          834          835          836          837 
  4.13548038   4.09880944   8.23520136 -11.67689464 -27.32479864   3.15623783  -3.42605529   8.72610758   8.26560376 
         838          839          840          841          842          843          844          845          846 
 13.64616491   1.59329406   3.31650166  -5.58250773  41.96454311  16.51606449   3.00322419  -8.09361826  -1.01709036 
         847          848          849          850          851          852          853          854          855 
 26.72454311   6.03856449   6.10766863  16.76290964  -8.34962479  -6.29545689  -5.64543551  13.91971507  -4.79362479 
         856          857          858          859          860          861          862          863          864 
-30.36810218  -4.18190514   4.81017751  29.35268507   0.89809486  24.15337207  28.08268507  18.27949758  14.84003874 
         865          866          867          868          869          870          871          872          873 
  4.38684418  27.44768507   2.19283091  13.45948101   0.89809486  -0.39996126   7.60417751  14.11268507  -2.15944885 
         874          875          876          877          878          879          880          881          882 
 29.56249503  19.10930047  18.39291914  10.14195387   7.01527063  -8.20225238  20.80263380  28.83514136  17.76195387 
         883          884          885          886          887          888          889          890          891 
  2.78193730 -11.92417164  13.18263380  14.91614709  14.41490220 -39.90285025 -39.90285025  27.07565234 -15.38367705 
         892          893          894          895          896          897          898          899          900 
  6.49217058  16.49507534  10.26200638 -14.86737019   3.79507534 -15.13799362   5.18200638  -3.19179047  43.11035135 
         901          902          903          904          905          906          907          908          909 
  4.64359310  10.47160950   4.65080018  13.14996174  21.25169648   0.30775699  12.16829740 -16.09173008   5.50369648 
         910          911          912          913          914          915          916          917          918 
-13.66224301  27.32412063  25.82077338  -4.76503593  26.33169648  21.47442366 -11.64422662  13.01496407  18.38952672 
         919          920          921          922          923          924          925          926          927 
 -5.74047328  -9.62460619  -8.15814429 -24.03385581 -14.50121969 -24.30041027 -26.60400916 -29.56671572 -34.51135581 
         928          929          930          931          932          933          934          935          936 
  0.73878031 -10.33041027 -24.06400916 -22.86968914  -9.10371969  -8.42541027   5.81878031 -14.62623530 -32.04775424 
         937          938          939          940          941          942          943          944          945 
-41.41557625 -44.43983253  -9.48332497  -9.80384579  -0.57689267   4.87194795   7.76618646   3.42395503 -30.09197130 
         946          947          948          949          950          951          952          953          954 
-64.75983253 -47.83732497  12.21118646  11.04395503 -29.30191518 -15.35997130 -23.27316586 -49.10732497 -49.76052903 
         955          956          957          958          959          960          961          962          963 
 45.34717587  15.12756239  38.17838998   6.01106286  27.74584268  28.22722774  15.77831207  17.99661835  16.62523059 
         964          965          966          967          968          969          970          971          972 
 -9.84863644 -23.98590480  30.79384268  36.69389441  35.37259779  53.98843395  46.65557389  46.04773992  40.59202085 
         973          974          975          976          977          978          979          980          981 
  2.51840098 -25.50009872 -12.77371219  -7.71243255 -33.59467460 -17.38767260 -12.33805797 -14.32992445  15.06906775 
         982          983          984          985          986          987          988          989          990 
  3.15682570  22.53882769  -9.01414121 -19.16508580 -21.50896086 -30.07901455 -14.89792327 -31.07592127  22.90218382 
         991          992          993          994          995          996          997          998          999 
  4.07892813  -4.39532662  -2.49781618  12.65142813 -12.65032662 -35.29355433  15.28218382   4.38231406  -1.51916071 
        1000 
 -1.76999357 
 [ reached 'max' / getOption("max.print") -- omitted 5633 entries ]
residuals(lepgib.lm, quantileFunction = qnorm)
           1            2            3            4            5            6            7            8            9 
  4.22419131  55.54215226  47.57597800  18.42718756  77.04684610 -17.82794076  -7.00647259 -10.60475526  -8.07371855 
          10           11           12           13           14           15           16           17           18 
-10.88703132  -8.62421877  60.94558044 -24.69835903 -37.96679017 -10.34427555 -33.77270669 -10.62038396  -1.91685873 
          19           20           21           22           23           24           25           26           27 
-13.90613115 -19.59593925 -56.57103706  25.61178539  25.93445435  16.22753598   6.35338360   0.64700045  -7.40066750 
          28           29           30           31           32           33           34           35           36 
-18.15033026  19.81828568  21.08828568  10.88903583  22.36150019  11.59484992   8.31404060  15.50350019  26.15751658 
          37           38           39           40           41           42           43           44           45 
  7.46737394  12.57986883  23.44818325 -23.85929273 -14.68050187 -14.86598688 -11.26827461   0.08207162 -43.43848342 
          46           47           48           49           50           51           52           53           54 
  4.36949813  15.12500641 -21.38117388 -25.97189424 -37.96880296 -42.71680096 -35.39042374 -56.99914409 -29.20938415 
          55           56           57           58           59           60           61           62           63 
-16.88063600  -7.97001626 -25.92527477 -35.70442255 -52.23314291  42.47114959  46.63537878  44.16448293  35.46652937 
          64           65           66           67           68           69           70           71           72 
 17.38237483   9.38718950  21.60135740  42.82537878 -30.08065649 -16.95978351   0.66105905 -19.49978351   1.96250518 
          73           74           75           76           77           78           79           80           81 
 11.60741110 -23.11989653   9.06741110  40.63093632  27.36250518  -6.17258890  -2.54906368 -20.89749482 -20.57989653 
          82           83           84           85           86           87           88           89           90 
 10.41488887 -10.39623935 -17.38577404  -8.95304448  18.03488887 -17.01838221   0.25488887 -10.92860004 -15.11942535 
          91           92           93           94           95           96           97           98           99 
-26.33195472   6.64278642 -16.93371106 -25.90838846 -39.03195472 -28.55435643 -39.24942535  19.38804528   9.54564357 
         100          101          102          103          104          105          106          107          108 
-17.01838846 -34.46704880 -47.35352358 -41.25435643  -1.03030818   2.67830407 -11.80796147 -16.17556296   8.72567126 
         109          110          111          112          113          114          115          116          117 
 -7.48169593   8.77696788   9.12969182   0.89203853   1.60443704  -0.93308385   1.10567126  19.98547351   2.30706716 
         118          119          120          121          122          123          124          125          126 
-15.33357555 -60.88382807 -14.09244016  -4.42683882   4.44697415   2.56491728   7.62619692  11.41577305   5.18995687 
         127          128          129          130          131          132          133          134          135 
-16.04942850   9.46503526  30.70886100  33.73340390  12.85170193  26.47552767  -0.97992944  11.24303526  23.08886100 
         136          137          138          139          140          141          142          143          144 
  6.21673723  22.16503526  21.39552767  -8.13433371  -7.26645911  10.35424974  33.18538514  46.26904895  29.07275233 
         145          146          147          148          149          150          151          152          153 
 28.63010623  18.14399722  36.74404895  34.15275233  32.01677290  -8.20049814  -6.97460096   2.74222485 -15.47409243 
         154          155          156          157          158          159          160          161          162 
-14.59460096 -14.59460096 -20.55409243 -16.45599821 -13.62678975 -14.77129391  17.24671599  27.58239402  17.02442899 
         163          164          165          166          167          168          169          170          171 
-17.01345641 -11.46929391  13.42022249  23.71191783 -20.68234530   4.61737275  23.94307963 -32.53093932  12.93641296 
         172          173          174          175          176          177          178          179          180 
 33.50906068 -19.72278975 -31.28129391  66.52906068 -16.64496980   1.76128635   3.64608622   6.98988703  21.88221487 
         181          182          183          184          185          186          187          188          189 
 13.64451794  -6.48496980 -21.09871365  -9.75946934  13.19877591  15.95554820   6.84128635  44.85053066  22.34277591 
         190          191          192          193          194          195          196          197          198 
 32.46554820  -3.57280345  -9.43355578 -13.84073256 -14.88096211 -17.94430782  -9.53749625 -16.99851774  -5.62355578 
         199          200          201          202          203          204          205          206          207 
 -5.44667639  -3.33930782 -15.24761827  -6.02057317  -6.83851774  -2.70430782   0.78148226 -19.52178556 -17.06724609 
         208          209          210          211          212          213          214          215          216 
  4.05180815 -16.92613498  25.92586147  13.55723317  28.12083424  36.88938764  43.68684418  24.83387528  27.15661162 
         217          218          219          220          221          222          223          224          225 
 10.79655474  61.09559233  46.18759433 -11.10362343  24.18175011  57.36973117  41.96940916  42.14297031  26.91509947 
         226          227          228          229          230          231          232          233          234 
 26.63708345  59.74940916  49.76297031 -18.97611926 -25.48450578   4.87775011  43.39973117  34.34940916  37.90963698 
         235          236          237          238          239          240          241          242          243 
-26.85331669  29.14493947  14.32218377  28.39042903 -10.34331669  17.71493947  36.81932663  23.31042903   3.19696345 
         244          245          246          247          248          249          250          251          252 
 11.02627280  11.14718377  20.77042903  -7.54429564 -12.90908611  -4.04487104  -2.94322828  -7.49478995   5.40228735 
         253          254          255          256          257          258          259          260          261 
  3.11478318  -5.92284327 -14.94504404 -13.02718422 -24.27149392 -24.05293481 -42.52965835 -11.28062076 -15.30290448 
         262          263          264          265          266          267          268          269          270 
-10.44096635 -17.70293481 -69.21837871  46.85195872  10.93772953  20.76120872  37.60772953  -0.49227047  -1.14689070 
         271          272          273          274          275          276          277          278          279 
 -1.03238204  16.44620262   8.65208631  17.88366837  20.44935271 -12.02197129  11.13927864  23.43120262   3.36041965 
         280          281          282          283          284          285          286          287          288 
 25.66241837  16.95685271  23.53802871   3.99541965  10.60685271 -43.31215042 -20.44009425  -4.99772568   7.21908589 
         289          290          291          292          293          294          295          296          297 
-15.96030698 -27.43715042 -26.09736698 -20.66105901 -41.67103613 -28.48026268 -14.21193560 -24.00364031 -33.15215042 
         298          299          300          301          302          303          304          305          306 
 -2.03439235 -16.27103613 -11.44461296  10.68963135   8.67120994  17.35464889   6.07505460   5.70038704   8.87534564 
         307          308          309          310          311          312          313          314          315 
 20.94787660  25.99064889   9.96361863  -2.22682499  -8.05558897 -11.43586911 -15.63561296  12.50361863  32.21376544 
         316          317          318          319          320          321          322          323          324 
  7.89729066  27.90193240  23.69379096   4.71035982  15.18795810  52.56328348  21.55193240  17.97879096  -8.46121149 
         325          326          327          328          329          330          331          332          333 
  1.16743744   4.14622332  25.70960838  12.53497843  15.47899899  15.37761124   7.17964132 -18.24697362  -8.13827024 
         334          335          336          337          338          339          340          341          342 
 14.70241699   7.40436257 -16.52702535   0.80302638 -19.56827024 -14.84784628 -14.14880607  -6.48782502  -9.90781369 
         343          344          345          346          347          348          349          350          351 
 -2.45291921  -0.32412338  -7.37547274   8.55374746 -14.99547274 -35.90949168   8.56587662   3.60434078   5.74828781 
         352          353          354          355          356          357          358          359          360 
 -3.30259728  14.97781116  15.12684522   0.81934448  22.38128836  17.43142713   4.72060136  -0.84925280  -1.85926937 
         361          362          363          364          365          366          367          368          369 
-14.11345905  10.97934448  30.00128836   8.54142713   1.33393469  -7.19925280  14.76128836   8.54142713   8.95393469 
         370          371          372          373          374          375          376          377          378 
  5.50074720  -6.93926937  30.00128836  13.62142713 -13.90606531   1.69074720  21.11128836  11.49393469 -11.77857287 
         379          380          381          382          383          384          385          386          387 
 23.67934448 -49.11722544 -21.54208610 -23.08547630 -42.30443672 -28.79722544  10.58547483   3.30950876   0.48472529 
         388          389          390          391          392          393          394          395          396 
 -5.92577946 -12.69400717 -16.57031620 -34.55537935 -44.37194757  -0.14562236 -12.71635737 -17.08018876 -12.60035656 
         397          398          399          400          401          402          403          404          405 
-20.39447286 -22.68814080 -26.48303980  -5.50853046 -10.28728053 -11.02894122 -25.78009864 -14.15276318 -15.41675333 
         406          407          408          409          410          411          412          413          414 
-19.11373693  -9.87597482 -19.98908872   5.15461531 -24.72191366  12.14944262   6.74975132  12.66481919  -1.05960110 
         415          416          417          418          419          420          421          422          423 
  6.93392902   5.23685684 -29.26987814 -32.30055738   5.62086243  16.47481919  14.18039890  17.09392902   4.94105127 
         424          425          426          427          428          429          430          431          432 
-14.52055738  -4.81024786  -9.71381488  -6.68426719  -8.47888464  -5.09221798   2.14373359  -2.43958119  -5.09221798 
         433          434          435          436          437          438          439          440          441 
 -1.34876641  35.58486348  25.64081239  33.98976601  36.81561363  41.01523048  31.95156253  16.97605306  11.73460523 
         442          443          444          445          446          447          448          449          450 
 -6.11952769 -45.09946466   0.73086975  18.08460523  -2.30952769 -22.44156283 -15.77913025   2.84460523  -0.85156283 
         451          452          453          454          455          456          457          458          459 
-11.23279800  -4.34913025 -28.13827920   1.71778131  12.62579770  32.94579770  12.62579770  29.93435667  40.33688821 
         460          461          462          463          464          465          466          467          468 
 11.86701002  44.57714614  39.45097169  50.17585697  50.84172184  54.96851032 -19.00135357  32.64536082  52.36122569 
         469          470          471          472          473          474          475          476          477 
 52.32197584  25.45100529 -15.82291347 -20.72552828 -42.02269301   5.09175544  -2.89036833   1.54262354 -44.30649027 
         478          479          480          481          482          483          484          485          486 
 -6.99194737 -29.68521305 -24.17651927 -17.74618722 -14.17630492 -28.06608407 -18.20327664 -16.23627504 -10.08081097 
         487          488          489          490          491          492          493          494          495 
-12.39579739   2.15889072 -29.88372703 -32.27180319 -31.76976369 -23.95597913 -33.09192727 -18.40575867  -7.14728615 
         496          497          498          499          500          501          502          503          504 
 -4.30317326  -4.94966776  -5.17334255   3.51459786 -18.55754399 -13.83966776 -10.43477113 -13.26479608   6.38592244 
         505          506          507          508          509          510          511          512          513 
  9.30423780  -9.82588542 -23.03636902 -34.43546733 -25.42356711 -15.93667263 -15.83987680 -33.67466921  -9.90705411 
         514          515          516          517          518          519          520          521          522 
-26.66775482 -18.96164329 -10.19926767 -10.58730576  -4.80857410 -10.26097693 -43.53987859 -18.01911650 -33.29838475 
         523          524          525          526          527          528          529          530          531 
-30.19741615 -30.98287326   3.92888555  31.44326555  18.52866769  10.53820144   4.88416630   2.65802730  14.84859889 
         532          533          534          535          536          537          538          539          540 
 10.16626447  -3.94740111  -5.38966564  16.62659889  21.39416630   3.65684391  -7.18945271   1.46956785   1.11684391 
         541          542          543          544          545          546          547          548          549 
-31.95445271 -16.31043215  22.63303717  14.96174054   5.10437335   4.80174054 -20.19423889  13.99437335  -9.28821759 
         550          551          552          553          554          555          556          557          558 
-14.49960165 -27.28781504 -25.36551773 -18.20050343 -15.16505325  -3.33419739  -4.23210300  32.63285573  26.67809435 
         559          560          561          562          563          564          565          566          567 
 27.83220567  16.29185367   5.36755770  25.94385367  15.47679522  18.02785573  -9.16412787   9.09498351   1.03233740 
         568          569          570          571          572          573          574          575          576 
 -5.41905035  -8.47531589 -11.57291738   3.21961346  -4.04766260   3.16831684  -3.41266260  -3.95291738   6.29632047 
         577          578          579          580          581          582          583          584          585 
 -1.53493205 -10.25547502  -4.43693213   1.15317086   1.81060622 -17.48534192 -40.77472487  24.25614323  22.09135637 
         586          587          588          589          590          591          592          593          594 
 25.65540822 -13.79780046 -31.92397473 -44.13943183  32.21210652 -21.45705031 -49.10822458 -61.17322458   6.72608861 
         595          596          597          598          599          600          601          602          603 
 -0.25528823  -9.01515628   8.32219762 -22.32878716 -22.58237301  -9.90898794  -1.07028457 -26.06626400   0.50234824 
         604          605          606          607          608          609          610          611          612 
-18.70848185  -2.80617495  -7.98895449 -16.39020015  23.69920920 -11.38880027  12.53915333 -14.72688670  -9.70861024 
         613          614          615          616          617          618          619          620          621 
 -4.85899726 -12.74957265  -5.68657065   8.07464063   5.01374973  24.73499403  25.93390595  24.51698131  13.00841729 
         622          623          624          625          626          627          628          629          630 
  4.17807500   9.49499403  19.94653770   4.16708306   2.02013689 -20.38625027 -22.92625027   0.29374396  28.59812413 
         631          632          633          634          635          636          637          638          639 
 24.80779240   0.95217954  -3.60972995 -17.48625604 107.60452883  15.61590191   4.91112573 217.69884621   7.18527005 
         640          641          642          643          644          645          646          647          648 
 16.16452883 597.57779240  21.27217954  -8.35357082  31.15779240   9.09027005  21.69368519  15.41278933  14.44066911 
         649          650          651          652          653          654          655          656          657 
  8.71136368  31.92278933  33.80816911  21.41136368  23.38701852  -1.09721067  36.65136368  13.22701852  -3.63721067 
         658          659          660          661          662          663          664          665          666 
-10.39967551 -18.98624253 -15.49909167   3.22787819 -21.62559181  23.70766662  25.25843743  19.52381721   8.39701178 
         667          668          669          670          671          672          673          674          675 
 46.29864524  27.51766662  16.36843743  16.30447734  14.55650196  13.85603017   5.19553025  26.76286518  14.12558565 
         676          677          678          679          680          681          682          683          684 
 14.84130768  30.44960296  14.95109285   3.53314902 -18.06890715  29.17960296  32.73109285  11.35551759  14.68232916 
         685          686          687          688          689          690          691          692          693 
 29.60293630 -28.21685098 -14.04448241 -29.31602672  11.95475814  39.20502012  32.02802172  26.46904386  28.05724234 
         694          695          696          697          698          699          700          701          702 
  9.80302172  17.06240886  22.11475814  17.91665850   8.56809148  48.67150075  32.54960039  24.87486236   3.97881553 
         703          704          705          706          707          708          709          710          711 
 51.21150075  33.81960039  25.50986236  14.52286396  17.88986236  20.73150075  41.43960039 -36.21670776  10.46450800 
         712          713          714          715          716          717          718          719          720 
 -3.32105766 -25.09549200 -28.72105766   1.49750927  -8.40105766  -5.62988166  11.95057870  45.06996551  59.92430994 
         721          722          723          724          725          726          727          728          729 
 60.85258107  36.36849967  15.52651606  36.66449760  36.48151606  31.29570675  35.84651606  23.67570675  21.42449760 
         730          731          732          733          734          735          736          737          738 
-34.12756085   9.27516633 -27.68972578 -29.02581165 -12.95017973  -2.54547782 -23.59778828 -12.55366625   8.04715360 
         739          740          741          742          743          744          745          746          747 
  4.43952218 -13.15668774 -35.30972578 -54.19490256  49.94775660  35.37362147  19.18040995 -20.49945393 -15.46562838 
         748          749          750          751          752          753          754          755          756 
-13.37083991 -20.11537045 -18.90789436 -12.87612270 -54.55808976 -51.05795364   8.99285579 -60.45820171 -70.25739229 
         757          758          759          760          761          762          763          764          765 
 -2.48696348 -11.47719267 -18.73581290 -14.38332412 -18.70610709 -16.56535836  -9.97800736 -10.46649802 -12.65902409 
         766          767          768          769          770          771          772          773          774 
  9.44440247 -15.19902409  -8.33559753  22.47296299  22.01447938   7.55767007   6.26940247  15.59379632   9.56847938 
         775          776          777          778          779          780          781          782          783 
  3.24506148 -12.03418837 -29.66515431 -56.73120728   2.43226586 -23.91134222  -9.53343822 -33.51440416   3.16656178 
         784          785          786          787          788          789          790          791          792 
-25.89440416 -33.91045713 -15.90725874  32.06989819  11.95549190  -4.57322845 -15.21547051  17.03549190 -15.21547051 
         793          794          795          796          797          798          799          800          801 
-12.34346851  -2.46861075   2.00158115  16.67315001  12.41874829  25.34567938  31.06671626  16.15805592  -2.23175219 
         802          803          804          805          806          807          808          809          810 
 -2.37684999  -0.36591838  31.69567938   3.45805592 -13.23841885 -36.66684999  32.48466892  35.65070563  36.90139286 
         811          812          813          814          815          816          817          818          819 
 36.16500510  26.97040623  26.83613807  40.11560644  -1.35346126  -8.75386382 -43.17524787 -23.36679459   1.19155603 
         820          821          822          823          824          825          826          827          828 
 20.56794795   9.54585195   6.73155268   4.21883304  15.99523876  14.17869810   9.50660210   3.94063616   2.90958319 
         829          830          831          832          833          834          835          836          837 
  4.13548038   4.09880944   8.23520136 -11.67689464 -27.32479864   3.15623783  -3.42605529   8.72610758   8.26560376 
         838          839          840          841          842          843          844          845          846 
 13.64616491   1.59329406   3.31650166  -5.58250773  41.96454311  16.51606449   3.00322419  -8.09361826  -1.01709036 
         847          848          849          850          851          852          853          854          855 
 26.72454311   6.03856449   6.10766863  16.76290964  -8.34962479  -6.29545689  -5.64543551  13.91971507  -4.79362479 
         856          857          858          859          860          861          862          863          864 
-30.36810218  -4.18190514   4.81017751  29.35268507   0.89809486  24.15337207  28.08268507  18.27949758  14.84003874 
         865          866          867          868          869          870          871          872          873 
  4.38684418  27.44768507   2.19283091  13.45948101   0.89809486  -0.39996126   7.60417751  14.11268507  -2.15944885 
         874          875          876          877          878          879          880          881          882 
 29.56249503  19.10930047  18.39291914  10.14195387   7.01527063  -8.20225238  20.80263380  28.83514136  17.76195387 
         883          884          885          886          887          888          889          890          891 
  2.78193730 -11.92417164  13.18263380  14.91614709  14.41490220 -39.90285025 -39.90285025  27.07565234 -15.38367705 
         892          893          894          895          896          897          898          899          900 
  6.49217058  16.49507534  10.26200638 -14.86737019   3.79507534 -15.13799362   5.18200638  -3.19179047  43.11035135 
         901          902          903          904          905          906          907          908          909 
  4.64359310  10.47160950   4.65080018  13.14996174  21.25169648   0.30775699  12.16829740 -16.09173008   5.50369648 
         910          911          912          913          914          915          916          917          918 
-13.66224301  27.32412063  25.82077338  -4.76503593  26.33169648  21.47442366 -11.64422662  13.01496407  18.38952672 
         919          920          921          922          923          924          925          926          927 
 -5.74047328  -9.62460619  -8.15814429 -24.03385581 -14.50121969 -24.30041027 -26.60400916 -29.56671572 -34.51135581 
         928          929          930          931          932          933          934          935          936 
  0.73878031 -10.33041027 -24.06400916 -22.86968914  -9.10371969  -8.42541027   5.81878031 -14.62623530 -32.04775424 
         937          938          939          940          941          942          943          944          945 
-41.41557625 -44.43983253  -9.48332497  -9.80384579  -0.57689267   4.87194795   7.76618646   3.42395503 -30.09197130 
         946          947          948          949          950          951          952          953          954 
-64.75983253 -47.83732497  12.21118646  11.04395503 -29.30191518 -15.35997130 -23.27316586 -49.10732497 -49.76052903 
         955          956          957          958          959          960          961          962          963 
 45.34717587  15.12756239  38.17838998   6.01106286  27.74584268  28.22722774  15.77831207  17.99661835  16.62523059 
         964          965          966          967          968          969          970          971          972 
 -9.84863644 -23.98590480  30.79384268  36.69389441  35.37259779  53.98843395  46.65557389  46.04773992  40.59202085 
         973          974          975          976          977          978          979          980          981 
  2.51840098 -25.50009872 -12.77371219  -7.71243255 -33.59467460 -17.38767260 -12.33805797 -14.32992445  15.06906775 
         982          983          984          985          986          987          988          989          990 
  3.15682570  22.53882769  -9.01414121 -19.16508580 -21.50896086 -30.07901455 -14.89792327 -31.07592127  22.90218382 
         991          992          993          994          995          996          997          998          999 
  4.07892813  -4.39532662  -2.49781618  12.65142813 -12.65032662 -35.29355433  15.28218382   4.38231406  -1.51916071 
        1000 
 -1.76999357 
 [ reached 'max' / getOption("max.print") -- omitted 5633 entries ]
plot(lepgib.lm)

Post-hoc comparisons

lepgib.emm <- emmeans(lepgib.lm, ~ begin_date_year*age_group)
pairs(lepgib.emm, simple = "age_group")
begin_date_year = 1992:
 contrast                 estimate    SE   df t.ratio p.value
 age_group1 - age_group2    -28.82 1.460 6610 -19.738  <.0001
 age_group1 - age_group3    -55.21 1.400 6610 -39.395  <.0001
 age_group1 - age_group4    -76.79 1.400 6610 -54.680  <.0001
 age_group1 - age_group5    -93.73 1.430 6610 -65.406  <.0001
 age_group1 - age_group6   -105.88 1.500 6610 -70.549  <.0001
 age_group1 - age_group7   -116.67 1.640 6610 -71.008  <.0001
 age_group1 - age_group8   -128.42 2.070 6610 -62.038  <.0001
 age_group1 - age_group9   -137.31 2.710 6610 -50.579  <.0001
 age_group1 - age_group10  -142.94 4.350 6610 -32.866  <.0001
 age_group2 - age_group3    -26.38 1.000 6610 -26.374  <.0001
 age_group2 - age_group4    -47.97 1.000 6610 -47.834  <.0001
 age_group2 - age_group5    -64.91 1.040 6610 -62.355  <.0001
 age_group2 - age_group6    -77.06 1.130 6610 -68.160  <.0001
 age_group2 - age_group7    -87.84 1.310 6610 -66.855  <.0001
 age_group2 - age_group8    -99.60 1.820 6610 -54.792  <.0001
 age_group2 - age_group9   -108.49 2.530 6610 -42.909  <.0001
 age_group2 - age_group10  -114.11 4.240 6610 -26.937  <.0001
 age_group3 - age_group4    -21.58 0.905 6610 -23.858  <.0001
 age_group3 - age_group5    -38.53 0.945 6610 -40.757  <.0001
 age_group3 - age_group6    -50.67 1.040 6610 -48.656  <.0001
 age_group3 - age_group7    -61.46 1.240 6610 -49.621  <.0001
 age_group3 - age_group8    -73.21 1.760 6610 -41.543  <.0001
 age_group3 - age_group9    -82.11 2.490 6610 -32.983  <.0001
 age_group3 - age_group10   -87.73 4.210 6610 -20.817  <.0001
 age_group4 - age_group5    -16.94 0.945 6610 -17.935  <.0001
 age_group4 - age_group6    -29.09 1.040 6610 -27.970  <.0001
 age_group4 - age_group7    -39.88 1.240 6610 -32.222  <.0001
 age_group4 - age_group8    -51.63 1.760 6610 -29.321  <.0001
 age_group4 - age_group9    -60.53 2.490 6610 -24.322  <.0001
 age_group4 - age_group10   -66.15 4.210 6610 -15.697  <.0001
 age_group5 - age_group6    -12.15 1.070 6610 -11.315  <.0001
 age_group5 - age_group7    -22.93 1.270 6610 -18.115  <.0001
 age_group5 - age_group8    -34.69 1.780 6610 -19.486  <.0001
 age_group5 - age_group9    -43.58 2.500 6610 -17.416  <.0001
 age_group5 - age_group10   -49.21 4.220 6610 -11.652  <.0001
 age_group6 - age_group7    -10.79 1.340 6610  -8.067  <.0001
 age_group6 - age_group8    -22.54 1.830 6610 -12.315  <.0001
 age_group6 - age_group9    -31.44 2.540 6610 -12.384  <.0001
 age_group6 - age_group10   -37.06 4.240 6610  -8.731  <.0001
 age_group7 - age_group8    -11.75 1.950 6610  -6.028  <.0001
 age_group7 - age_group9    -20.65 2.630 6610  -7.864  <.0001
 age_group7 - age_group10   -26.27 4.300 6610  -6.114  <.0001
 age_group8 - age_group9     -8.90 2.910 6610  -3.060  0.0680
 age_group8 - age_group10   -14.52 4.480 6610  -3.244  0.0392
 age_group9 - age_group10    -5.62 4.810 6610  -1.169  0.9769

P value adjustment: tukey method for comparing a family of 10 estimates 
test(pairs(lepgib.emm, by = "begin_date_year"), by = NULL, adjust = "mvt")
 contrast                 begin_date_year estimate    SE   df t.ratio p.value
 age_group1 - age_group2             1992   -28.82 1.460 6610 -19.738  <.0001
 age_group1 - age_group3             1992   -55.21 1.400 6610 -39.395  <.0001
 age_group1 - age_group4             1992   -76.79 1.400 6610 -54.680  <.0001
 age_group1 - age_group5             1992   -93.73 1.430 6610 -65.406  <.0001
 age_group1 - age_group6             1992  -105.88 1.500 6610 -70.549  <.0001
 age_group1 - age_group7             1992  -116.67 1.640 6610 -71.008  <.0001
 age_group1 - age_group8             1992  -128.42 2.070 6610 -62.038  <.0001
 age_group1 - age_group9             1992  -137.31 2.710 6610 -50.579  <.0001
 age_group1 - age_group10            1992  -142.94 4.350 6610 -32.866  <.0001
 age_group2 - age_group3             1992   -26.38 1.000 6610 -26.374  <.0001
 age_group2 - age_group4             1992   -47.97 1.000 6610 -47.834  <.0001
 age_group2 - age_group5             1992   -64.91 1.040 6610 -62.355  <.0001
 age_group2 - age_group6             1992   -77.06 1.130 6610 -68.160  <.0001
 age_group2 - age_group7             1992   -87.84 1.310 6610 -66.855  <.0001
 age_group2 - age_group8             1992   -99.60 1.820 6610 -54.792  <.0001
 age_group2 - age_group9             1992  -108.49 2.530 6610 -42.909  <.0001
 age_group2 - age_group10            1992  -114.11 4.240 6610 -26.937  <.0001
 age_group3 - age_group4             1992   -21.58 0.905 6610 -23.858  <.0001
 age_group3 - age_group5             1992   -38.53 0.945 6610 -40.757  <.0001
 age_group3 - age_group6             1992   -50.67 1.040 6610 -48.656  <.0001
 age_group3 - age_group7             1992   -61.46 1.240 6610 -49.621  <.0001
 age_group3 - age_group8             1992   -73.21 1.760 6610 -41.543  <.0001
 age_group3 - age_group9             1992   -82.11 2.490 6610 -32.983  <.0001
 age_group3 - age_group10            1992   -87.73 4.210 6610 -20.817  <.0001
 age_group4 - age_group5             1992   -16.94 0.945 6610 -17.935  <.0001
 age_group4 - age_group6             1992   -29.09 1.040 6610 -27.970  <.0001
 age_group4 - age_group7             1992   -39.88 1.240 6610 -32.222  <.0001
 age_group4 - age_group8             1992   -51.63 1.760 6610 -29.321  <.0001
 age_group4 - age_group9             1992   -60.53 2.490 6610 -24.322  <.0001
 age_group4 - age_group10            1992   -66.15 4.210 6610 -15.697  <.0001
 age_group5 - age_group6             1992   -12.15 1.070 6610 -11.315  <.0001
 age_group5 - age_group7             1992   -22.93 1.270 6610 -18.115  <.0001
 age_group5 - age_group8             1992   -34.69 1.780 6610 -19.486  <.0001
 age_group5 - age_group9             1992   -43.58 2.500 6610 -17.416  <.0001
 age_group5 - age_group10            1992   -49.21 4.220 6610 -11.652  <.0001
 age_group6 - age_group7             1992   -10.79 1.340 6610  -8.067  <.0001
 age_group6 - age_group8             1992   -22.54 1.830 6610 -12.315  <.0001
 age_group6 - age_group9             1992   -31.44 2.540 6610 -12.384  <.0001
 age_group6 - age_group10            1992   -37.06 4.240 6610  -8.731  <.0001
 age_group7 - age_group8             1992   -11.75 1.950 6610  -6.028  <.0001
 age_group7 - age_group9             1992   -20.65 2.630 6610  -7.864  <.0001
 age_group7 - age_group10            1992   -26.27 4.300 6610  -6.114  <.0001
 age_group8 - age_group9             1992    -8.90 2.910 6610  -3.060  0.0546
 age_group8 - age_group10            1992   -14.52 4.480 6610  -3.244  0.0311
 age_group9 - age_group10            1992    -5.62 4.810 6610  -1.169  0.9704

P value adjustment: mvt method for 45 tests 
#export tables
# #interpret(eta_squared(lepgib.lm), rules = "cohen1992") %>%
#   write.csv(file = "Outputs/Tables/lepgib_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
lepgib.slopes <- emtrends(lepgib.lm, ~age_group, var = "begin_date_year")
# Compare estimated slopes to 0
lepgib.slope.contrasts <- test(lepgib.slopes) %>% 
  mutate(Species = "Pumpkinseed Sunfish") %>% 
  rename(Age = age_group)

lepgib.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/lepgib_emmeans.csv")

Plot raw data

(lepgib.length.year.plot <- ggplot(data = lepgib %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)
`geom_smooth()` using formula = 'y ~ x'

Marginal Effects

result <- predict_response(lepgib.lm, c("begin_date_year", "age_group"))

# plot(result)
# test_predictions(result) %>% 
#   write.csv(file = "Outputs/Tables/lepgib_pairwise_length_time_slopes.csv", row.names = F)

(lepgib.marginal.plot <- ggpredict(lepgib.lm, terms = c("begin_date_year", "age_group")) %>%  
    plot()+
    #stat_poly_eq(use_label("eq"))+
    stat_regline_equation()+
    stat_poly_line()+
    # annotate(geom = "text", label = "y = -220 + 0.22x", x = 1990, y = 220)+
    # annotate(geom = "text", label = "y = -1.7 + 0.11x", x = 1990, y = 213)+
    # annotate(geom = "text", label = "y = -64 + 0.13x", x = 1990, y = 205)+
    # annotate(geom = "text", label = "y = 300 + 0.25x", x = 1990, y = 195)+
    # annotate(geom = "text", label = "y = -170 + 0.18x", x = 1990, y = 185)+
    # annotate(geom = "text", label = "y = -140 + 0.15x", x = 1990, y = 173)+
    # annotate(geom = "text", label = "y = 42 + 0.06x", x = 1990, y = 160)+
    # annotate(geom = "text", label = "y = 320 - 0.09x", x = 1990, y = 140)+
    # annotate(geom = "text", label = "y = 850 - 0.37x", x = 1990, y = 115)+
    # annotate(geom = "text", label = "y = 1.4E3 - 0.67x", x = 1990, y = 90)+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(title = NULL,
         y = "Mean Length-at-Age (mm)",
         x = "Year")+
    guides(fill = guide_legend(title = "Age", reverse = T), color = guide_legend(title = "Age", reverse = T))+
    theme_bw()
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/lepgib_marginal_effects_plot.tiff", 
       lepgib.marginal.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

Rainbow Trout

Model

#filter data for only Black Crappie, Pomooxis nigromaculatus 
oncmyk <- all.grow.merge %>% filter(species == "rainbow_trout") %>% 
  filter(age_group %in% c(1, 2, 3, 4), #match age groups in BRTs
         !is.na(age_group), !is.na(begin_date_year), !is.na(length_mean_mm),
         !is.na(log_max_depth), !is.na(logarea))

#linear model
oncmyk.lm <- lm(length_mean_mm ~ begin_date_year*age_group + log_max_depth + logarea + doy, data = oncmyk)
summary(oncmyk.lm)

Call:
lm(formula = length_mean_mm ~ begin_date_year * age_group + log_max_depth + 
    logarea + doy, data = oncmyk)

Residuals:
     Min       1Q   Median       3Q      Max 
-231.167  -43.176   -1.245   41.354  239.066 

Coefficients:
                             Estimate Std. Error t value Pr(>|t|)    
(Intercept)                -6.795e+02  9.133e+02  -0.744   0.4573    
begin_date_year             4.125e-01  4.574e-01   0.902   0.3677    
age_group2                 -1.707e+03  1.180e+03  -1.446   0.1489    
age_group3                 -2.139e+03  1.248e+03  -1.714   0.0873 .  
age_group4                 -6.222e+03  1.560e+03  -3.989 7.87e-05 ***
log_max_depth               1.033e+01  7.562e+00   1.367   0.1725    
logarea                     4.497e+00  2.267e+00   1.983   0.0480 *  
doy                         3.275e-01  5.364e-02   6.105 2.42e-09 ***
begin_date_year:age_group2  9.014e-01  5.947e-01   1.516   0.1304    
begin_date_year:age_group3  1.161e+00  6.289e-01   1.847   0.0655 .  
begin_date_year:age_group4  3.264e+00  7.854e-01   4.155 3.97e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 71.3 on 402 degrees of freedom
  (7 observations deleted due to missingness)
Multiple R-squared:  0.6034,    Adjusted R-squared:  0.5935 
F-statistic: 61.15 on 10 and 402 DF,  p-value: < 2.2e-16
#calculate and interpret effect sizes
eta_squared(oncmyk.lm)
          begin_date_year                 age_group             log_max_depth                   logarea 
              0.005846741               0.531921899               0.005800480               0.004134132 
                      doy begin_date_year:age_group 
              0.038417048               0.017230464 
#interpret(eta_squared(oncmyk.lm), rules = "cohen1992")

#calculate AIC score
AIC(oncmyk.lm)
[1] 4709.405
#examine model fit
testDispersion(oncmyk.lm)

    DHARMa nonparametric dispersion test via sd of residuals fitted vs. simulated

data:  simulationOutput
dispersion = 0.97527, p-value = 0.744
alternative hypothesis: two.sided

simulation.output <- simulateResiduals(fittedModel = oncmyk.lm)

residuals(oncmyk.lm)
           1            2            3            4            5            6            7            8            9 
 -22.9336552   28.5744336   26.0788029   10.7944336  -19.3699013   29.3525142   23.0181404  -50.9806279   90.4646867 
          10           11           12           13           14           15           16           17           18 
  79.3440396   80.8269820  103.6869820  187.5069820 -122.1744299  -30.6902655  -15.4512180 -158.0079082  -42.5435989 
          19           20           21           22           23           24           25           26           27 
 -58.3913894  -71.0913894 -115.3914376   43.6376217   18.5377523    8.1904454  -27.2179721 -138.8967454  100.8448875 
          28           29           30           31           32           33           34           35           36 
 -27.6754285   66.0845912   79.1788786  -16.4570952   90.6848875  104.8651681  -20.6869736   23.9116225   40.2087024 
          37           38           39           40           41           42           43           44           45 
  -6.0114180   62.8582892   30.4137246   47.1341379  -99.9313871   11.7022021    6.2947509  -78.5371391    3.3667096 
          46           47           48           49           50           51           52           53           54 
-190.0245836  -25.6315754  -43.1763424  -92.3880592  -18.2473926  -96.5664621  -25.9862827 -130.2165858  -18.2735844 
          55           56           57           58           59           60           61           62           63 
 -17.4446679  -63.8627385 -120.1673253  -22.3130012  -52.3420242  -27.3930012   31.2186945   14.7086945   16.9212433 
          64           65           66           67           68           69           70           71           72 
 -35.3590333  -76.1002576 -198.9176445   -7.1780093  -86.2593847  -63.6793223   95.3712752 -107.4023402  118.2312752 
          73           74           75           76           77           78           79           80           81 
 -84.5423402   90.2912752   92.6102287  146.0454081  -36.0782283   68.7346778   10.2828572 -117.6193149   25.9136541 
          82           83           84           85           86           87           88           89           90 
  17.6945075  -33.9099271   14.0584693  114.3221699   78.2492548  169.4934019   14.5040728   14.5040728   -0.1573809 
          91           92           93           94           95           96           97           98           99 
  36.2160688   -8.7987780   -5.9012879   48.7663626   38.5309296  -33.2505699  -77.3260994   -8.4853159  -10.8818417 
         100          101          102          103          104          105          106          107          108 
  -2.7866901    5.6589524   14.3582099   59.9718760   40.2599767   56.4948945   44.5243617  -11.0300433  -18.3477662 
         109          110          111          112          113          114          115          116          117 
 -73.6103930   38.9530743   71.7314179   39.8183472  114.7873417   24.0546967   18.6071950  -92.4100950   52.5456530 
         118          119          120          121          122          123          124          125          126 
 -34.3379007   74.0538181  -37.7085593  -68.0909523   73.7229136  -32.6913323  -25.0633607  -38.4313436   25.1265933 
         127          128          129          130          131          132          133          134          135 
 -45.6628935 -121.0349219  -58.9312453    0.6281748  -49.6445341   33.4343440   55.5939851  -73.8894263  -42.6040770 
         136          137          138          139          140          141          142          143          144 
 -24.4911717  150.1696818  125.3046474  -80.7668498  -98.4889129   42.1471742   60.6065763  -49.1940588   68.7695727 
         145          146          147          148          149          150          151          152          153 
  25.0251920   61.0933412  124.8194088  -59.7228827  -32.3838812    4.5592461  -34.5569943   30.7195882   -7.8025709 
         154          155          156          157          158          159          160          161          162 
 -41.3366328  -52.3104461  -82.8930136  -69.8654742  -97.2937041   12.0126402   -8.4136937  128.9027441  -12.1222221 
         163          164          165          166          167          168          169          170          171 
 -48.4942505  108.9715345    6.0863900  -24.6689754  -14.4471333   39.3530466   37.4438654  -74.2090461   57.8565329 
         172          173          174          175          176          177          178          179          180 
  55.9473517  -91.6621507 -102.9062975  -37.2197489  -12.2045696  -51.3965288  -70.3868320  -27.8860477  -67.0701945 
         181          182          183          184          185          186          187          188          189 
 -36.6329313  110.8792821    3.8888153   55.4121822   85.8659175    3.3234804   51.9793961   92.5931314  -29.2700593 
         190          191          192          193          194          195          196          197          198 
 -18.2138246   30.1642705  -55.4844409  -59.4273016  -90.3534947  -44.9740564  -75.3209537  -74.1172530  -49.4678099 
         199          200          201          202          203          204          205          206          207 
   3.4102395   38.4254760   24.7977877  -10.7490751  131.4646602   59.4027349   16.4327957  -23.8497142  -71.2587824 
         208          209          210          211          212          213          214          215          216 
 -39.0360090  124.1413642  -14.6938389   80.1634174   85.2190942  -48.7222757  -18.1285852  103.6008792  129.0912563 
         217          218          219          220          221          222          223          224          225 
 -45.1697049   67.7274345   97.7454838    5.7941031    0.9090301   -5.4561690   62.4138294   63.4764411  -26.1162648 
         226          227          228          229          230          231          232          233          234 
 -42.3784418   24.2104421  140.2265209  -26.4145666   22.6028373 -166.9893921 -122.9321358   49.7635410   86.7192784 
         235          236          237          238          239          240          241          242          243 
   6.2053727   34.1214762  150.7709406   50.6734903  -35.9820085 -100.2454260   -1.2449801   69.8507500    5.9232632 
         244          245          246          247          248          249          250          251          252 
  28.6814973   20.0361813   42.0454107   23.2400947   33.4238729   17.3596092   25.5891037   38.2891037  -43.0400850 
         253          254          255          256          257          258          259          260          261 
  39.2348328  -53.9742067  -42.3781439   61.2210082 -115.9464566  -97.7799779 -148.6245924 -150.5709551   39.7560331 
         262          263          264          265          266          267          268          269          270 
  25.3826524   40.6540426  166.6020888 -141.9658668  -64.9118917   -6.7474745    4.4437902   68.2716763  -15.3753390 
         271          272          273          274          275          276          277          278          279 
  37.2526325  -33.6592998   17.1338570    7.0317940  -21.8327169  -36.5489069  -93.8317675 -119.6937182  -22.5466245 
         280          281          282          283          284          285          286          287          288 
 -34.1094852    0.5653176    9.3231167  -38.4703353   19.9712103   43.7156639   64.5022119  -50.9407657  -43.2905762 
         289          290          291          292          293          294          295          296          297 
   0.3559717  -30.1367927  -19.2659046  -80.2203470  -13.3560833  -13.3560833  -80.2203470  -27.4263115   30.5588128 
         298          299          300          301          302          303          304          305          306 
  11.3759522  119.6450241  170.9152246  -76.8549219    1.1093346  -60.6549464  108.7786127  110.7165568   92.6740144 
         307          308          312          313          314          315          316          317          318 
 105.2524931  239.0658786  134.3260264  151.0348141  151.5814313  118.8600906  -38.4727029   -3.2723074 -124.4939731 
         319          320          321          322          323          324          325          326          327 
  66.6308962 -105.7313882 -129.6624960   25.0216489  -62.0351313   99.7262422   48.6295156  -35.2527729  -66.7580890 
         328          329          331          332          333          334          335          336          337 
 -68.7902166  109.4075204   22.6400885  -28.8590430  -46.5010368  -46.6633128   49.0377716 -158.7953521 -231.1667929 
         338          339          340          341          342          343          344          345          346 
  10.8886347   54.2066408   70.3107024  150.1476079   30.9602730  -47.3272474   55.9848891   -7.3771047  -16.4059859 
         347          348          349          350          351          352          353          354          355 
  66.3261873   57.1611051    6.5993657  -56.6019749  -23.4347685  -13.9289956  -15.0719732  -41.3715513   66.7033834 
         356          357          358          360          361          362          363          364          365 
 -17.5649816   21.8272337    6.2110479  -92.6498921 -105.5457450  -95.7985360   -9.2543193   19.6805985  -62.0674725 
         366          367          368          369          370          371          372          373          374 
-100.9179571 -138.5248188  182.9840734  -21.2335646  -69.6058022    0.1493309  -12.7330387   23.6712866   49.6991765 
         375          376          377          378          379          380          381          382          383 
  -6.9190152  -19.4452426    8.5164619  -20.3444295  -25.1221524   32.4001215  112.7524332   29.7841992  -12.1434544 
         384          385          386          389          390          391          392          393          394 
 -92.4897185  -86.7876443  -12.0969669  -22.1244107  -68.0654566  -97.5860961  -65.9101259   41.5851473   22.9469814 
         395          396          397          398          399          400          401          402          403 
  52.6817508   -3.3332835   41.5036221  -44.5652903   30.5596540   41.3543247   34.5038728   33.5089512   -0.6968986 
         404          405          406          407          408          409          410          411          412 
  42.1861469    6.1116031  -34.2194383   27.4008252   28.6767434  -70.3448940  -62.0911304   13.0161116  141.1143271 
         413          414          415          416          417          418          419          420 
 -95.8610844   61.9352792    4.8198428   -3.3685455  -24.1733228   -6.9190152   29.1491992  -21.1967163 
residuals(oncmyk.lm, quantileFunction = qnorm)
           1            2            3            4            5            6            7            8            9 
 -22.9336552   28.5744336   26.0788029   10.7944336  -19.3699013   29.3525142   23.0181404  -50.9806279   90.4646867 
          10           11           12           13           14           15           16           17           18 
  79.3440396   80.8269820  103.6869820  187.5069820 -122.1744299  -30.6902655  -15.4512180 -158.0079082  -42.5435989 
          19           20           21           22           23           24           25           26           27 
 -58.3913894  -71.0913894 -115.3914376   43.6376217   18.5377523    8.1904454  -27.2179721 -138.8967454  100.8448875 
          28           29           30           31           32           33           34           35           36 
 -27.6754285   66.0845912   79.1788786  -16.4570952   90.6848875  104.8651681  -20.6869736   23.9116225   40.2087024 
          37           38           39           40           41           42           43           44           45 
  -6.0114180   62.8582892   30.4137246   47.1341379  -99.9313871   11.7022021    6.2947509  -78.5371391    3.3667096 
          46           47           48           49           50           51           52           53           54 
-190.0245836  -25.6315754  -43.1763424  -92.3880592  -18.2473926  -96.5664621  -25.9862827 -130.2165858  -18.2735844 
          55           56           57           58           59           60           61           62           63 
 -17.4446679  -63.8627385 -120.1673253  -22.3130012  -52.3420242  -27.3930012   31.2186945   14.7086945   16.9212433 
          64           65           66           67           68           69           70           71           72 
 -35.3590333  -76.1002576 -198.9176445   -7.1780093  -86.2593847  -63.6793223   95.3712752 -107.4023402  118.2312752 
          73           74           75           76           77           78           79           80           81 
 -84.5423402   90.2912752   92.6102287  146.0454081  -36.0782283   68.7346778   10.2828572 -117.6193149   25.9136541 
          82           83           84           85           86           87           88           89           90 
  17.6945075  -33.9099271   14.0584693  114.3221699   78.2492548  169.4934019   14.5040728   14.5040728   -0.1573809 
          91           92           93           94           95           96           97           98           99 
  36.2160688   -8.7987780   -5.9012879   48.7663626   38.5309296  -33.2505699  -77.3260994   -8.4853159  -10.8818417 
         100          101          102          103          104          105          106          107          108 
  -2.7866901    5.6589524   14.3582099   59.9718760   40.2599767   56.4948945   44.5243617  -11.0300433  -18.3477662 
         109          110          111          112          113          114          115          116          117 
 -73.6103930   38.9530743   71.7314179   39.8183472  114.7873417   24.0546967   18.6071950  -92.4100950   52.5456530 
         118          119          120          121          122          123          124          125          126 
 -34.3379007   74.0538181  -37.7085593  -68.0909523   73.7229136  -32.6913323  -25.0633607  -38.4313436   25.1265933 
         127          128          129          130          131          132          133          134          135 
 -45.6628935 -121.0349219  -58.9312453    0.6281748  -49.6445341   33.4343440   55.5939851  -73.8894263  -42.6040770 
         136          137          138          139          140          141          142          143          144 
 -24.4911717  150.1696818  125.3046474  -80.7668498  -98.4889129   42.1471742   60.6065763  -49.1940588   68.7695727 
         145          146          147          148          149          150          151          152          153 
  25.0251920   61.0933412  124.8194088  -59.7228827  -32.3838812    4.5592461  -34.5569943   30.7195882   -7.8025709 
         154          155          156          157          158          159          160          161          162 
 -41.3366328  -52.3104461  -82.8930136  -69.8654742  -97.2937041   12.0126402   -8.4136937  128.9027441  -12.1222221 
         163          164          165          166          167          168          169          170          171 
 -48.4942505  108.9715345    6.0863900  -24.6689754  -14.4471333   39.3530466   37.4438654  -74.2090461   57.8565329 
         172          173          174          175          176          177          178          179          180 
  55.9473517  -91.6621507 -102.9062975  -37.2197489  -12.2045696  -51.3965288  -70.3868320  -27.8860477  -67.0701945 
         181          182          183          184          185          186          187          188          189 
 -36.6329313  110.8792821    3.8888153   55.4121822   85.8659175    3.3234804   51.9793961   92.5931314  -29.2700593 
         190          191          192          193          194          195          196          197          198 
 -18.2138246   30.1642705  -55.4844409  -59.4273016  -90.3534947  -44.9740564  -75.3209537  -74.1172530  -49.4678099 
         199          200          201          202          203          204          205          206          207 
   3.4102395   38.4254760   24.7977877  -10.7490751  131.4646602   59.4027349   16.4327957  -23.8497142  -71.2587824 
         208          209          210          211          212          213          214          215          216 
 -39.0360090  124.1413642  -14.6938389   80.1634174   85.2190942  -48.7222757  -18.1285852  103.6008792  129.0912563 
         217          218          219          220          221          222          223          224          225 
 -45.1697049   67.7274345   97.7454838    5.7941031    0.9090301   -5.4561690   62.4138294   63.4764411  -26.1162648 
         226          227          228          229          230          231          232          233          234 
 -42.3784418   24.2104421  140.2265209  -26.4145666   22.6028373 -166.9893921 -122.9321358   49.7635410   86.7192784 
         235          236          237          238          239          240          241          242          243 
   6.2053727   34.1214762  150.7709406   50.6734903  -35.9820085 -100.2454260   -1.2449801   69.8507500    5.9232632 
         244          245          246          247          248          249          250          251          252 
  28.6814973   20.0361813   42.0454107   23.2400947   33.4238729   17.3596092   25.5891037   38.2891037  -43.0400850 
         253          254          255          256          257          258          259          260          261 
  39.2348328  -53.9742067  -42.3781439   61.2210082 -115.9464566  -97.7799779 -148.6245924 -150.5709551   39.7560331 
         262          263          264          265          266          267          268          269          270 
  25.3826524   40.6540426  166.6020888 -141.9658668  -64.9118917   -6.7474745    4.4437902   68.2716763  -15.3753390 
         271          272          273          274          275          276          277          278          279 
  37.2526325  -33.6592998   17.1338570    7.0317940  -21.8327169  -36.5489069  -93.8317675 -119.6937182  -22.5466245 
         280          281          282          283          284          285          286          287          288 
 -34.1094852    0.5653176    9.3231167  -38.4703353   19.9712103   43.7156639   64.5022119  -50.9407657  -43.2905762 
         289          290          291          292          293          294          295          296          297 
   0.3559717  -30.1367927  -19.2659046  -80.2203470  -13.3560833  -13.3560833  -80.2203470  -27.4263115   30.5588128 
         298          299          300          301          302          303          304          305          306 
  11.3759522  119.6450241  170.9152246  -76.8549219    1.1093346  -60.6549464  108.7786127  110.7165568   92.6740144 
         307          308          312          313          314          315          316          317          318 
 105.2524931  239.0658786  134.3260264  151.0348141  151.5814313  118.8600906  -38.4727029   -3.2723074 -124.4939731 
         319          320          321          322          323          324          325          326          327 
  66.6308962 -105.7313882 -129.6624960   25.0216489  -62.0351313   99.7262422   48.6295156  -35.2527729  -66.7580890 
         328          329          331          332          333          334          335          336          337 
 -68.7902166  109.4075204   22.6400885  -28.8590430  -46.5010368  -46.6633128   49.0377716 -158.7953521 -231.1667929 
         338          339          340          341          342          343          344          345          346 
  10.8886347   54.2066408   70.3107024  150.1476079   30.9602730  -47.3272474   55.9848891   -7.3771047  -16.4059859 
         347          348          349          350          351          352          353          354          355 
  66.3261873   57.1611051    6.5993657  -56.6019749  -23.4347685  -13.9289956  -15.0719732  -41.3715513   66.7033834 
         356          357          358          360          361          362          363          364          365 
 -17.5649816   21.8272337    6.2110479  -92.6498921 -105.5457450  -95.7985360   -9.2543193   19.6805985  -62.0674725 
         366          367          368          369          370          371          372          373          374 
-100.9179571 -138.5248188  182.9840734  -21.2335646  -69.6058022    0.1493309  -12.7330387   23.6712866   49.6991765 
         375          376          377          378          379          380          381          382          383 
  -6.9190152  -19.4452426    8.5164619  -20.3444295  -25.1221524   32.4001215  112.7524332   29.7841992  -12.1434544 
         384          385          386          389          390          391          392          393          394 
 -92.4897185  -86.7876443  -12.0969669  -22.1244107  -68.0654566  -97.5860961  -65.9101259   41.5851473   22.9469814 
         395          396          397          398          399          400          401          402          403 
  52.6817508   -3.3332835   41.5036221  -44.5652903   30.5596540   41.3543247   34.5038728   33.5089512   -0.6968986 
         404          405          406          407          408          409          410          411          412 
  42.1861469    6.1116031  -34.2194383   27.4008252   28.6767434  -70.3448940  -62.0911304   13.0161116  141.1143271 
         413          414          415          416          417          418          419          420 
 -95.8610844   61.9352792    4.8198428   -3.3685455  -24.1733228   -6.9190152   29.1491992  -21.1967163 
plot(oncmyk.lm)

Post-hoc comparisons

oncmyk.emm <- emmeans(oncmyk.lm, ~ begin_date_year*age_group)
pairs(oncmyk.emm, simple = "age_group")
begin_date_year = 1983:
 contrast                estimate    SE  df t.ratio p.value
 age_group1 - age_group2    -81.3  9.00 402  -9.026  <.0001
 age_group1 - age_group3   -164.5  9.90 402 -16.618  <.0001
 age_group1 - age_group4   -251.2 12.60 402 -19.935  <.0001
 age_group2 - age_group3    -83.3  9.56 402  -8.712  <.0001
 age_group2 - age_group4   -169.9 12.30 402 -13.867  <.0001
 age_group3 - age_group4    -86.6 12.70 402  -6.842  <.0001

P value adjustment: tukey method for comparing a family of 4 estimates 
test(pairs(oncmyk.emm, by = "begin_date_year"), by = NULL, adjust = "mvt")
 contrast                begin_date_year estimate    SE  df t.ratio p.value
 age_group1 - age_group2            1983    -81.3  9.00 402  -9.026  <.0001
 age_group1 - age_group3            1983   -164.5  9.90 402 -16.618  <.0001
 age_group1 - age_group4            1983   -251.2 12.60 402 -19.935  <.0001
 age_group2 - age_group3            1983    -83.3  9.56 402  -8.712  <.0001
 age_group2 - age_group4            1983   -169.9 12.30 402 -13.867  <.0001
 age_group3 - age_group4            1983    -86.6 12.70 402  -6.842  <.0001

P value adjustment: mvt method for 6 tests 
#export tables
# #interpret(eta_squared(oncmyk.lm), rules = "cohen1992") %>%
#   write.csv(file = "Outputs/Tables/oncmyk_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
oncmyk.slopes <- emtrends(oncmyk.lm, ~age_group, var = "begin_date_year")
# Compare estimated slopes to 0
oncmyk.slope.contrasts <- test(oncmyk.slopes) %>% 
  mutate(Species = "Rainbow Trout") %>% 
  rename(Age = age_group)

oncmyk.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/oncmyk_emmeans.csv")

Plot raw data

(oncmyk.length.year.plot <- ggplot(data = oncmyk %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)
`geom_smooth()` using formula = 'y ~ x'

Marginal Effects

result <- predict_response(oncmyk.lm, c("begin_date_year", "age_group"))

# plot(result)
# test_predictions(result) %>% 
#   write.csv(file = "Outputs/Tables/oncmyk_pairwise_length_time_slopes.csv", row.names = F)

(oncmyk.marginal.plot <- ggpredict(oncmyk.lm, terms = c("begin_date_year", "age_group")) %>%  
    plot()+
    #stat_poly_eq(use_label("eq"))+
    stat_regline_equation()+
    stat_poly_line()+
    # annotate(geom = "text", label = "y = -5.8E3 + 3.2x", x = 2000, y = 600)+
    # annotate(geom = "text", label = "y = -2.2E3 + 1.3x", x = 2000, y = 475)+
    # annotate(geom = "text", label = "y = -1.3E3 + 0.82x", x = 2000, y = 380)+
    # annotate(geom = "text", label = "y = 920 - 0.33x", x = 2000, y = 285)+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(title = NULL,
         y = "Mean Length-at-Age (mm)",
         x = "Year")+
    guides(fill = guide_legend(title = "Age", reverse = T), color = guide_legend(title = "Age", reverse = T))+
    theme_bw()
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/oncmyk_marginal_effects_plot.tiff", 
       oncmyk.marginal.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

Rock Bass

Model

#filter data for only Black Crappie, Pomooxis nigromaculatus 
ambrup <- all.grow.merge %>% filter(species == "rock_bass") %>% 
  filter(age_group %in% c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11), #match age groups in BRTs
         !is.na(age_group), !is.na(begin_date_year), !is.na(length_mean_mm),
         !is.na(log_max_depth), !is.na(logarea))

#linear model
ambrup.lm <- lm(length_mean_mm ~ begin_date_year*age_group + log_max_depth + logarea + doy, data = ambrup)
summary(ambrup.lm)

Call:
lm(formula = length_mean_mm ~ begin_date_year * age_group + log_max_depth + 
    logarea + doy, data = ambrup)

Residuals:
    Min      1Q  Median      3Q     Max 
-87.429 -16.193  -0.899  16.416  83.713 

Coefficients:
                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                  1.432e+03  2.868e+02   4.994 6.14e-07 ***
begin_date_year             -6.909e-01  1.437e-01  -4.806 1.59e-06 ***
age_group2                  -6.671e+02  3.168e+02  -2.106 0.035293 *  
age_group3                  -1.010e+03  3.070e+02  -3.291 0.001008 ** 
age_group4                  -1.168e+03  3.049e+02  -3.831 0.000129 ***
age_group5                  -1.149e+03  3.073e+02  -3.739 0.000187 ***
age_group6                  -1.359e+03  3.132e+02  -4.339 1.46e-05 ***
age_group7                  -1.082e+03  3.194e+02  -3.389 0.000708 ***
age_group8                  -1.202e+03  3.308e+02  -3.633 0.000283 ***
age_group9                  -1.117e+03  3.588e+02  -3.112 0.001867 ** 
age_group10                 -7.675e+02  4.021e+02  -1.909 0.056337 .  
age_group11                 -6.557e+02  5.266e+02  -1.245 0.213109    
log_max_depth               -7.402e-01  5.200e-01  -1.423 0.154684    
logarea                      1.996e+00  2.364e-01   8.443  < 2e-16 ***
doy                          6.279e-02  8.023e-03   7.826 6.24e-15 ***
begin_date_year:age_group2   3.495e-01  1.589e-01   2.200 0.027828 *  
begin_date_year:age_group3   5.369e-01  1.539e-01   3.488 0.000491 ***
begin_date_year:age_group4   6.300e-01  1.529e-01   4.120 3.85e-05 ***
begin_date_year:age_group5   6.324e-01  1.541e-01   4.104 4.14e-05 ***
begin_date_year:age_group6   7.482e-01  1.570e-01   4.765 1.95e-06 ***
begin_date_year:age_group7   6.184e-01  1.601e-01   3.862 0.000114 ***
begin_date_year:age_group8   6.864e-01  1.658e-01   4.139 3.55e-05 ***
begin_date_year:age_group9   6.500e-01  1.798e-01   3.616 0.000302 ***
begin_date_year:age_group10  4.805e-01  2.013e-01   2.386 0.017061 *  
begin_date_year:age_group11  4.291e-01  2.633e-01   1.630 0.103268    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 24.07 on 4509 degrees of freedom
  (73 observations deleted due to missingness)
Multiple R-squared:  0.8155,    Adjusted R-squared:  0.8145 
F-statistic: 830.3 on 24 and 4509 DF,  p-value: < 2.2e-16
#calculate and interpret effect sizes
eta_squared(ambrup.lm)
          begin_date_year                 age_group             log_max_depth                   logarea 
             2.017039e-04              8.084486e-01              1.414964e-05              2.301937e-03 
                      doy begin_date_year:age_group 
             2.905206e-03              1.601735e-03 
#interpret(eta_squared(ambrup.lm), rules = "cohen1992")

#calculate AIC score
AIC(ambrup.lm)
[1] 41737.49
#examine model fit
testDispersion(ambrup.lm)

    DHARMa nonparametric dispersion test via sd of residuals fitted vs. simulated

data:  simulationOutput
dispersion = 0.9953, p-value = 0.88
alternative hypothesis: two.sided

simulation.output <- simulateResiduals(fittedModel = ambrup.lm)

residuals(ambrup.lm)
           1            2            3            4            5            6            7            8            9 
-10.83527069 -11.99326310 -29.37620149 -16.20089322  -9.74453699   6.12529728   0.32256107  -9.14193736 -32.31326310 
          10           11           12           13           14           15           16           17           18 
-30.54036816  17.97863061   6.67256107  12.29409834  12.29409834   7.21409834  -2.59311630 -28.25472616 -24.44472616 
          19           20           21           22           23           24           25           26           27 
-27.29605189  -9.34786118 -29.65030375  13.37573195 -23.33130177 -33.54124496 -23.08084579 -32.91909057 -23.02070042 
          28           29           30           31           32           33           34           35           36 
-15.15186275 -20.72262368 -30.03347153 -37.09882638 -42.38359441 -33.66073745 -33.40581635 -40.10297003 -17.87390105 
          37           38           39           40           41           42           43           44           45 
 -7.07330518 -16.69083023 -46.97695308 -52.47556700 -17.50919838  -9.31582689 -11.58458782   9.64950644   1.43291218 
          46           47           48           49           50           51           52           53           54 
 20.37956432  -4.70567942   7.45491763  14.84729841  -0.89978049  10.49617311  18.65729841  30.85021951 -28.09458782 
          55           56           57           58           59           60           61           62           63 
 13.07021951  10.58145621  23.14072138  43.32077602  61.78025449  64.39276409  47.26960625  -6.24533259  26.55577873 
          64           65           66           67           68           69           70           71           72 
 33.09798723  61.29413236  57.21797529  62.44681745  28.35565660  47.14630954  40.48801023  74.42718650  52.22402866 
          73           74           75           76           77           78           79           80           81 
 43.36428099  39.38735616  -9.68351877  -7.93367436 -18.37785084 -25.40600566 -21.79241878 -20.14651319  -2.82826992 
          82           83           84           85           86           87           88           89           90 
-11.19111425  -6.99666841 -22.67445761 -11.07080082   1.34428684 -14.18840759  17.35534799 -12.43124642 -56.11029193 
          91           92           93           94           95           96           97           98           99 
 -7.15540164   9.10034799  -1.25524642  -7.38966982  -5.31029193  -2.07540164  10.24926111 -13.75965201   7.88875358 
         100          101          102          103          104          105          106          107          108 
 -7.38966982 -18.01029193  -7.15540164   1.05159241   5.84741593 -10.07073889  -1.90631868   9.15875358   2.77033018 
         109          110          111          112          113          114          115          116          117 
 11.14741956  29.76783276  36.69599169  57.55695626  30.63781615  13.11663076  40.05554397  63.30320290  47.33416746 
         118          119          120          121          122          123          124          125          126 
 58.92427406  47.25931841 -35.19708177 -24.96457217 -16.68773002 -11.57747768  16.42862140 -27.56736097 -21.83051881 
         127          128          129          130          131          132          133          134          135 
 -7.83026647 -14.34719131   3.50669239 -17.41805527  -9.32998010   2.56920853  24.18887205 -23.66988327 -38.53393945 
         136          137          138          139          140          141          142          143          144 
-48.12999878 -43.90389669  26.63396430  16.68811645   0.23887271   4.12632690   6.07585053   7.25361795 -13.51527477 
         145          146          147          148          149          150          151          152          153 
  6.31396430  -8.71188355   6.58887271   5.04396430  -1.09188355  -7.38112729  -3.49367310   0.99585053  21.55396430 
         154          155          156          157          158          159          160          161          162 
  6.52811645  -1.66612729   2.94017830 -12.17168188  -0.33430121   0.84525782  18.46780021   1.22392579 -20.82696456 
         163          164          165          166          167          168          169          170          171 
-22.96668188   4.07798509  33.70780021  24.44678293  17.16890029  16.41677335   0.69170451   3.86196996  28.20491218 
         172          173          174          175          176          177          178          179          180 
 50.62269681   5.77738509   7.79580569  -4.38829549 -18.57738336  18.65027957  32.13122190  44.99309950  35.72169684 
         181          182          183          184          185          186          187          188          189 
-24.08071670  23.73027957  24.17255523  35.72169684  32.31724066   8.49027957   8.08588856  51.46969684  38.03224066 
         190          191          192          193          194          195          196          197          198 
 37.69254512  48.42250147  55.82602714  42.29011355  10.98788198  18.48571437   6.36048771  28.67554512  46.64450147 
         199          200          201          202          203          204          205          206          207 
 47.84120573  50.54511355  23.16394221  18.60788198  33.24754512  42.92511355  31.18571437  15.23005682   6.76922441 
         208          209          210          211          212          213          214          215          216 
 11.83542784   6.93829948   4.15825367   3.14444397  -7.09930159   6.01554473  14.67481841  -5.72258432 -12.31263013 
         217          218          219          220          221          222          223          224          225 
  3.92439350  -5.47268540   0.86882759  13.57675687  -8.28985192  18.44090434  -6.74324313  -2.78900407  -8.28985192 
         226          227          228          229          230          231          232          233          234 
 19.71090434 -19.58164147 -30.33211783  23.77080327   7.67586237   2.35423767  -4.34164147  -6.70919673  21.19675687 
         235          236          237          238          239          240          241          242          243 
  0.38599593   9.06681475  21.61590434 -32.96997196  -1.73798389 -13.78114173 -58.20088939 -41.62479032 -20.86049349 
         244          245          246          247          248          249          250          251          252 
  1.45885827 -26.61997196 -36.10049349 -32.21798389 -34.10114173 -36.18755606 -35.93114756 -30.82979032 -16.97798389 
         253          254          255          256          257          258          259          260          261 
-59.50114173 -68.36088939 -22.41199926  -1.09488129  -7.16285968 -13.45680475 -12.34110574 -52.68501412 -44.57743884 
         262          263          264          265          266          267          268          269          270 
-20.93160814 -17.75533259   8.68411871  -7.16285968 -14.72680475 -35.20110574  -1.47588129 -35.20110574 -18.39160814 
         271          272          273          274          275          276          277          278          279 
-19.02533259   0.42911871  10.61714032 -30.45187360 -57.76501412 -43.01002708 -45.12494010 -35.94497925 -33.28463237 
         280          281          282          283          284          285          286          287          288 
-13.98617789   2.28910478  -9.71043762  -6.86122824 -17.87141313  -5.04299353   3.98503331 -12.37868402 -33.90322642 
         289          290          291          292          293          294          295          296          297 
-10.31420193   2.51421768  -6.91508882 -16.25147281 -18.18172950 -28.32280584 -26.88699072 -15.43032021 -46.71457994 
         298          299          300          301          302          303          304          305          306 
 -2.53951971  28.36307629  -0.95443838  -3.23224039  -5.29050147 -13.00536931 -17.96541999 -22.67710113 -17.90789033 
         307          308          309          310          311          312          313          314          315 
-20.90923354 -20.71164959 -27.50335150  25.12371644  -4.76443838 -21.91535150   9.98206541   1.64895776  -4.32056314 
         316          317          318          319          320          321          322          323          324 
 12.39896196   6.61448647   2.89702461   4.99891621  -6.02346521 -10.72498338   1.59783113  -8.49556563  -7.10939198 
         325          326          327          328          329          330          331          332          333 
  0.19928228 -17.76668118 -16.85599161   1.38450932   2.35510645   7.24101513  -8.87132194 -12.87404628 -19.04100201 
         334          335          336          337          338          339          340          341          342 
-18.89323800 -13.61936084 -17.46022405  -4.59992911 -16.57797476 -15.26742479  44.90174289  46.28590847  51.45743009 
         343          344          345          346          347          348          349          350          351 
 50.87848501  28.18168402  22.13118162  21.49745718  59.93168402  32.29118162  22.13245718  58.66168402  27.21118162 
         352          353          354          355          356          357          358          359          360 
 15.62747760  13.90847386  -4.27591714  -1.34120620 -18.40899775  -6.49817896  -7.93552614  -3.64091714 -29.98010886 
         361          362          363          364          365          366          367          368          369 
 21.86043496 -19.92013330 -24.16585573 -20.80485947 -12.53091714   5.57989114  -5.93472966  -7.99974769  -5.38723809 
         370          371          372          373          374          375          376          377          378 
-11.08039593 -16.13014359   2.75293158  -4.63404452 -13.53389075 -37.74845464 -30.17939241 -34.64729843 -32.52887813 
         379          380          381          382          383          384          385          386          387 
-42.54002838 -29.15523707 -39.00948419   4.54688834 -46.44724343 -36.04789549 -61.80342056 -33.99503940 -35.14469253 
         388          389          390          391          392          393          394          395          396 
 -2.11196742 -35.33403223 -43.73068429 -25.16782820 -27.58748133  14.58131074   3.88636404  -0.15290911 -21.71488750 
         397          398          399          400          401          402          403          404          405 
  6.70450076   7.39686644  -9.44736041   6.22511250   0.71263959  21.46511250 -17.84883257 -21.81313356 -17.58667907 
         406          407          408          409          410          411          412          413          414 
 -2.76752693 -25.99010400  12.61068353 -35.44716734 -22.33918272 -25.83997334  -7.64015822 -21.98117549 -21.63905814 
         415          416          417          418          419          420          421          422          423 
 -7.36916477 -17.60894982 -15.18492299  -7.16464031  -3.28918272 -13.77497334 -15.26015822 -37.22117549 -16.55443012 
         424          425          426          427          428          429          430          431          432 
-12.78109620  -3.40230038   9.57029517 -10.49610749   2.60943633 -51.87113193  32.07637239 -18.48413641 -13.19938818 
         433          434          435          436          437          438          439          440          441 
 -6.48053459 -12.26409077 -14.87515010 -12.35235225 -12.00976229  10.77670553  17.73242723 -14.57130025 -11.86815035 
         442          443          444          445          446          447          448          449          450 
  5.39765244   5.01918184  25.22216457  25.11057793  14.99937577  -7.07687784  31.44658697 -23.14245802  11.43713170 
         451          452          453          454          455          456          457          458          459 
  1.34258930  26.20161379  22.18976667   4.20058549  -1.24199159  -4.55120406  -6.83501376  21.34310001   3.35391882 
         460          461          462          463          464          465          466          467          468 
  6.37800841   6.45546261  26.42310001   3.77725215  25.42800841   3.06879594 -21.31209266  39.47546261   4.99622645 
         469          470          471          472          473          474          475          476          477 
 10.07622645 -13.98053008  25.12786006  -1.34331888   7.28507127  12.05374553  -9.77113025 -12.49709371 -20.65907687 
         478          479          480          481          482          483          484          485          486 
  0.95894475  -4.06500033  16.19894475 -18.18930132  10.04679031  12.36092313 -14.28105525  -2.79500033  12.29069868 
         487          488          489          490          491          492          493          494          495 
 -3.28006917   0.08261018  -4.26786604  40.87175166  30.70280687  38.82570181  23.32017675  18.72753297   9.02803391 
         496          497          498          499          500          501          502          503          504 
 14.23196437  12.38746594  60.33614020  22.96086631   7.75803391  17.93877829  -8.80837378  -3.22487752  -8.85358670 
         505          506          507          508          509          510          511          512          513 
-13.27910304 -13.77596024  -3.55212718  -3.09439474  -6.15152800  -1.68468584  -0.12466077   3.36447500   9.52416557 
         514          515          516          517          518          519          520          521          522 
  6.01329553   8.18860400  21.61389580   1.74010429  -6.11233555 -23.89249859 -15.62593383  21.19250141  24.82102617 
         523          524          525          526          527          528          529          530          531 
-10.32490501  15.19822228  23.39643424  11.69374469  -1.39519269 -22.62249859  25.35822228  31.16707803  -3.65079531 
         532          533          534          535          536          537          538          539          540 
  1.06309938   7.76230978  -6.97949662  16.65322313  29.25362121  51.16806052  44.59138661  40.40292876  36.68485799 
         541          542          543          544          545          546          547          548          549 
 10.52670820   3.96364391  13.83785432  25.34271458  19.13043433  -5.09916759  36.71193839  44.52859782  37.80013997 
         550          551          552          553          554          555          556          557          558 
  4.11391941   6.01752179   3.61506552  58.93492579  37.17137695  29.22580902  40.27735117  -6.86233495   9.70363935 
         559          560          561          562          563          564          565          566          567 
  9.70224173  13.39578547  36.02020129  10.26403215 -22.43223644  51.12886954  39.89552897  45.86707112  18.53085056 
         568          569          570          571          572          573          574          575          576 
 33.98111960   0.88699667  43.50685694  42.37457669  56.24497477  30.49208075  54.22607350   7.88472843  22.41420787 
         577          578          579          580          581          582          583          584          585 
 28.83906814  52.47178789  40.94218597  23.48662528  11.82995137   1.14180741  24.63540978   2.54795352  58.50281379 
         586          587          588          589          590          591          592          593          594 
 11.01553354  30.40038672  28.34903270  48.55071106  55.48499970  23.20933136  54.32818172  38.51628865  30.46317552 
         595          596          597          598          599          600          601          602          603 
 45.37539293  25.75349985  51.34683164  -8.93424489 -33.58626680 -29.25424489 -10.12938463  16.04333513   9.34321137 
         604          605          606          607          608          609          610          611          612 
 16.46575511  22.04394871   6.26656035   3.22910408   9.65396435  -6.46361027  -2.05849663   0.21597830   7.47666787 
         613          614          615          616          617          618          619          620          621 
  5.89747183   2.76943260   5.28727533  19.60930320 -18.22472490 -16.45182997  38.11776593  25.97013247  34.84930320 
         622          623          624          625          626          627          628          629          630 
 -1.82673250 -32.61805824 -72.53333213  22.14930320 -23.15512265  -9.75805824  -8.40849663 -42.96402170  -0.56138750 
         631          632          633          634          635          636          637          638          639 
 26.71224415  24.55073601  23.83591104  -4.59937175  -2.34359124   3.72597072   4.82123111  -1.92203125  -4.48015766 
         640          641          642          643          644          645          646          647          648 
 20.05666759   3.39810786   7.08393964  18.74610902  -0.05311931 -31.49590190 -14.92279497 -15.99946318   9.27918859 
         649          650          651          652          653          654          655          656          657 
  5.72562731  -2.61470332  15.99624859  -2.25193624   2.87421160   0.64562731  20.24529668   7.74124859  10.49421160 
         658          659          660          661          662          663          664          665          666 
  3.22303706 -10.07802882  -8.13795427  -7.16770448  20.24529668   6.21473043 -35.25371679  17.07272193  -6.57174318 
         667          668          669          670          671          672          673          674          675 
 -6.95025770   5.55649856   0.55395275  -7.65652362  30.99031278  -2.33840985 -15.24759104   3.01649856  12.57124380 
         676          677          678          679          680          681          682          683          684 
 27.58051749  -4.87840985 -27.52425770  31.62124380  -9.89715571  10.21891280   2.98135410   1.95733610  -7.92040122 
         685          686          687          688          689          690          691          692          693 
 -2.21045740  -6.47251673 -11.69671888  -3.47796851 -11.54435250 -19.52222824 -19.21301886 -20.78891803 -31.86422102 
         694          695          696          697          698          699          700          701          702 
-33.66411167 -17.09805675 -14.41626612 -31.70869083   3.96163080 -15.16733864 -25.34848347 -10.22459939 -21.59149246 
         703          704          705          706          707          708          709          710          711 
  4.63683933 -14.49849130 -19.76353939  -4.82239088  -8.37457637 -11.20075091  -5.52964941  -1.93534342   3.67759233 
         712          713          714          715          716          717          718          719          720 
 13.49171319  19.56873682   2.44582459  13.44400424  14.08307322  -9.85651879 -21.79205137  19.27626119  30.19940100 
         721          722          723          724          725          726          727          728          729 
 28.26914431  32.20692512  23.73674024   8.43486527  17.23394514  44.92917524  18.29360798  36.96271733  13.09153194 
         730          731          732          733          734          735          736          737          738 
 32.72794514  25.17810408  58.73906864   1.66153194  26.37794514   7.50989371   5.22870831  -5.61487848  -7.99639736 
         739          740          741          742          743          744          745          746          747 
 33.17991369  23.33841713   1.43452024  -2.14941182   3.08912390  -1.25339423   9.73930106  19.30860264  -3.35700939 
         748          749          750          751          752          753          754          755          756 
 -3.07758287  -0.50487746   7.63660577  54.62660577  15.66596773  23.75360264  -7.22941182 -14.69087610   3.82660577 
         757          758          759          760          761          762          763          764          765 
 14.81930106  18.67360264  41.11841713  -7.07087610  19.06660577   4.43375816  -1.80468943 -11.14947202  -7.97974971 
         766          767          768          769          770          771          772          773          774 
  8.01182384   3.30006464 -27.16541202  10.67806982  -2.08523570  -8.26077833  -0.69814522  20.91217943  24.43956769 
         775          776          777          778          779          780          781          782          783 
 35.71526670  22.68449884  23.31135832  27.31717819  20.20014139   2.83806427  -4.28718168 -11.14443980   0.22508564 
         784          785          786          787          788          789          790          791          792 
-10.07427184  -6.60931098  -3.73729744  18.15845543  -9.77101811 -31.20009866 -10.43250918   7.91975171   7.64419197 
         793          794          795          796          797          798          799          800          801 
 19.97307931  15.58385980  -0.27661686  -0.35170645  21.07277472  24.03736507  30.45878580  36.40053496  23.76834322 
         802          803          804          805          806          807          808          809          810 
  0.27576629  -0.92281298  47.83053496  21.65343019 -20.00185139 -23.11478698 -21.13022537 -53.78075044 -27.04672754 
         811          812          813          814          815          816          817          818          819 
-38.86289327 -34.92896281 -30.56659627  13.87257446 -20.26346124 -15.49478698 -42.08522537 -19.85006087  -9.52896281 
         820          821          822          823          824          825          826          827          828 
-10.24659627  -1.36742554 -38.35478698  -2.98075044 -38.86289327  16.41257446 -10.10346124 -25.65478698 -54.78522537 
         829          830          831          832          833          834          835          836          837 
-53.78075044  -8.38289327 -14.18562947 -12.78659627 -11.52742554  -0.18383032   3.70458288   1.74274182  11.17370638 
         838          839          840          841          842          843          844          845          846 
 -2.72383032   1.35508288 -12.22725818  18.79370638  21.83266464   7.93282357  17.47947902  15.00023528  25.23768947 
         847          848          849          850          851          852          853          854          855 
-11.54778690  17.47947902  -4.56278690   2.55013420 -11.94467313   4.14447902  -1.50976472  -6.51231053 -18.53278690 
         856          857          858          859          860          861          862          863          864 
-39.35986580  10.49270400   4.71184888 -31.33891205  -7.98815112   0.75745159 -15.46142657 -14.73543222 -19.13321612 
         865          866          867          868          869          870          871          872          873 
-14.85535915 -11.58267615 -11.77259173   8.24524009 -14.13067031   0.75811888 -11.40971027 -34.42744063 -42.58083703 
         874          875          876          877          878          879          880          881          882 
-45.42461189 -46.56154566 -41.42275073 -29.56998370   1.50668503 -10.39427789 -16.45755031 -12.43049290  51.00446345 
         883          884          885          886          887          888          889          890          891 
-28.95183229 -17.79201087 -42.12292447   5.81112945  13.56867319  20.62853345  28.38625320   5.52441669  -0.53747293 
         892          893          894          895          896          897          898          899          900 
 10.07470088  22.03533985  10.25686679  19.49625320   9.13775726   8.06441669  20.41612945  -1.67132681  23.80353345 
         901          902          903          904          905          906          907          908          909 
 24.15291987 -14.21366653  17.81999700  10.04188808   5.82612616  -5.53640932   8.00463617   2.49116301   8.60644568 
         910          911          912          913          914          915          916          917          918 
  1.51594174  -5.72972067  -1.07657223 -28.92629344 -46.20809984 -36.75704675 -38.90275978 -47.32720936 -33.16054994 
         919          920          921          922          923          924          925          926          927 
-45.36143317 -59.82871342 -24.46720936 -33.48628154 -11.40903366 -24.22514958 -28.81870932 -39.63204420 -36.96570816 
         928          929          930          931          932          933          934          935          936 
 10.83172064   8.78286223  31.64461587  -4.89542327  15.12159027  15.34695197  18.87505397   2.15064001  13.86461587 
         937          938          939          940          941          942          943          944          945 
  7.80457673   6.86659027  -6.00171899   0.05118529   1.02571712  16.42039840  16.48820666   3.78996030  -1.00007884 
         946          947          948          949          950          951          952          953          954 
  2.00872302   1.94590264   4.81438969  20.86745725  16.47381084  10.37275466  22.22249318   0.67672991   7.44164937 
         955          956          957          958          959          960          961          962          963 
 25.85697797  38.10692830  11.31860666  22.68793845  22.40303639   9.92922640  12.27153916  10.83014971 -12.43255529 
         964          965          966          967          968          969          970          971          972 
-14.66439643 -13.20148769  -8.48105497 -17.09304296 -16.07100755 -17.50972949  -6.80492134  16.39253591  19.66827483 
         973          974          975          976          977          978          979          980          981 
 24.18068477  21.28589599  17.11245295  22.19009232  34.24732053  11.83890449   0.39728567 -18.46213065 -31.50725489 
         982          983          984          985          986          987          988          989          990 
-25.38603979  23.33432458  16.85334656  42.69599574  37.12406530  33.52376517  18.67036099  25.72884118 -15.68990830 
         991          992          993          994          995          996          997          998          999 
  1.27167565   7.17009170 -18.65030730 -40.37417640 -43.76070857 -46.40512349 -49.03239304 -47.58801515 -10.06312486 
        1000 
-54.06191406 
 [ reached 'max' / getOption("max.print") -- omitted 3534 entries ]
residuals(ambrup.lm, quantileFunction = qnorm)
           1            2            3            4            5            6            7            8            9 
-10.83527069 -11.99326310 -29.37620149 -16.20089322  -9.74453699   6.12529728   0.32256107  -9.14193736 -32.31326310 
          10           11           12           13           14           15           16           17           18 
-30.54036816  17.97863061   6.67256107  12.29409834  12.29409834   7.21409834  -2.59311630 -28.25472616 -24.44472616 
          19           20           21           22           23           24           25           26           27 
-27.29605189  -9.34786118 -29.65030375  13.37573195 -23.33130177 -33.54124496 -23.08084579 -32.91909057 -23.02070042 
          28           29           30           31           32           33           34           35           36 
-15.15186275 -20.72262368 -30.03347153 -37.09882638 -42.38359441 -33.66073745 -33.40581635 -40.10297003 -17.87390105 
          37           38           39           40           41           42           43           44           45 
 -7.07330518 -16.69083023 -46.97695308 -52.47556700 -17.50919838  -9.31582689 -11.58458782   9.64950644   1.43291218 
          46           47           48           49           50           51           52           53           54 
 20.37956432  -4.70567942   7.45491763  14.84729841  -0.89978049  10.49617311  18.65729841  30.85021951 -28.09458782 
          55           56           57           58           59           60           61           62           63 
 13.07021951  10.58145621  23.14072138  43.32077602  61.78025449  64.39276409  47.26960625  -6.24533259  26.55577873 
          64           65           66           67           68           69           70           71           72 
 33.09798723  61.29413236  57.21797529  62.44681745  28.35565660  47.14630954  40.48801023  74.42718650  52.22402866 
          73           74           75           76           77           78           79           80           81 
 43.36428099  39.38735616  -9.68351877  -7.93367436 -18.37785084 -25.40600566 -21.79241878 -20.14651319  -2.82826992 
          82           83           84           85           86           87           88           89           90 
-11.19111425  -6.99666841 -22.67445761 -11.07080082   1.34428684 -14.18840759  17.35534799 -12.43124642 -56.11029193 
          91           92           93           94           95           96           97           98           99 
 -7.15540164   9.10034799  -1.25524642  -7.38966982  -5.31029193  -2.07540164  10.24926111 -13.75965201   7.88875358 
         100          101          102          103          104          105          106          107          108 
 -7.38966982 -18.01029193  -7.15540164   1.05159241   5.84741593 -10.07073889  -1.90631868   9.15875358   2.77033018 
         109          110          111          112          113          114          115          116          117 
 11.14741956  29.76783276  36.69599169  57.55695626  30.63781615  13.11663076  40.05554397  63.30320290  47.33416746 
         118          119          120          121          122          123          124          125          126 
 58.92427406  47.25931841 -35.19708177 -24.96457217 -16.68773002 -11.57747768  16.42862140 -27.56736097 -21.83051881 
         127          128          129          130          131          132          133          134          135 
 -7.83026647 -14.34719131   3.50669239 -17.41805527  -9.32998010   2.56920853  24.18887205 -23.66988327 -38.53393945 
         136          137          138          139          140          141          142          143          144 
-48.12999878 -43.90389669  26.63396430  16.68811645   0.23887271   4.12632690   6.07585053   7.25361795 -13.51527477 
         145          146          147          148          149          150          151          152          153 
  6.31396430  -8.71188355   6.58887271   5.04396430  -1.09188355  -7.38112729  -3.49367310   0.99585053  21.55396430 
         154          155          156          157          158          159          160          161          162 
  6.52811645  -1.66612729   2.94017830 -12.17168188  -0.33430121   0.84525782  18.46780021   1.22392579 -20.82696456 
         163          164          165          166          167          168          169          170          171 
-22.96668188   4.07798509  33.70780021  24.44678293  17.16890029  16.41677335   0.69170451   3.86196996  28.20491218 
         172          173          174          175          176          177          178          179          180 
 50.62269681   5.77738509   7.79580569  -4.38829549 -18.57738336  18.65027957  32.13122190  44.99309950  35.72169684 
         181          182          183          184          185          186          187          188          189 
-24.08071670  23.73027957  24.17255523  35.72169684  32.31724066   8.49027957   8.08588856  51.46969684  38.03224066 
         190          191          192          193          194          195          196          197          198 
 37.69254512  48.42250147  55.82602714  42.29011355  10.98788198  18.48571437   6.36048771  28.67554512  46.64450147 
         199          200          201          202          203          204          205          206          207 
 47.84120573  50.54511355  23.16394221  18.60788198  33.24754512  42.92511355  31.18571437  15.23005682   6.76922441 
         208          209          210          211          212          213          214          215          216 
 11.83542784   6.93829948   4.15825367   3.14444397  -7.09930159   6.01554473  14.67481841  -5.72258432 -12.31263013 
         217          218          219          220          221          222          223          224          225 
  3.92439350  -5.47268540   0.86882759  13.57675687  -8.28985192  18.44090434  -6.74324313  -2.78900407  -8.28985192 
         226          227          228          229          230          231          232          233          234 
 19.71090434 -19.58164147 -30.33211783  23.77080327   7.67586237   2.35423767  -4.34164147  -6.70919673  21.19675687 
         235          236          237          238          239          240          241          242          243 
  0.38599593   9.06681475  21.61590434 -32.96997196  -1.73798389 -13.78114173 -58.20088939 -41.62479032 -20.86049349 
         244          245          246          247          248          249          250          251          252 
  1.45885827 -26.61997196 -36.10049349 -32.21798389 -34.10114173 -36.18755606 -35.93114756 -30.82979032 -16.97798389 
         253          254          255          256          257          258          259          260          261 
-59.50114173 -68.36088939 -22.41199926  -1.09488129  -7.16285968 -13.45680475 -12.34110574 -52.68501412 -44.57743884 
         262          263          264          265          266          267          268          269          270 
-20.93160814 -17.75533259   8.68411871  -7.16285968 -14.72680475 -35.20110574  -1.47588129 -35.20110574 -18.39160814 
         271          272          273          274          275          276          277          278          279 
-19.02533259   0.42911871  10.61714032 -30.45187360 -57.76501412 -43.01002708 -45.12494010 -35.94497925 -33.28463237 
         280          281          282          283          284          285          286          287          288 
-13.98617789   2.28910478  -9.71043762  -6.86122824 -17.87141313  -5.04299353   3.98503331 -12.37868402 -33.90322642 
         289          290          291          292          293          294          295          296          297 
-10.31420193   2.51421768  -6.91508882 -16.25147281 -18.18172950 -28.32280584 -26.88699072 -15.43032021 -46.71457994 
         298          299          300          301          302          303          304          305          306 
 -2.53951971  28.36307629  -0.95443838  -3.23224039  -5.29050147 -13.00536931 -17.96541999 -22.67710113 -17.90789033 
         307          308          309          310          311          312          313          314          315 
-20.90923354 -20.71164959 -27.50335150  25.12371644  -4.76443838 -21.91535150   9.98206541   1.64895776  -4.32056314 
         316          317          318          319          320          321          322          323          324 
 12.39896196   6.61448647   2.89702461   4.99891621  -6.02346521 -10.72498338   1.59783113  -8.49556563  -7.10939198 
         325          326          327          328          329          330          331          332          333 
  0.19928228 -17.76668118 -16.85599161   1.38450932   2.35510645   7.24101513  -8.87132194 -12.87404628 -19.04100201 
         334          335          336          337          338          339          340          341          342 
-18.89323800 -13.61936084 -17.46022405  -4.59992911 -16.57797476 -15.26742479  44.90174289  46.28590847  51.45743009 
         343          344          345          346          347          348          349          350          351 
 50.87848501  28.18168402  22.13118162  21.49745718  59.93168402  32.29118162  22.13245718  58.66168402  27.21118162 
         352          353          354          355          356          357          358          359          360 
 15.62747760  13.90847386  -4.27591714  -1.34120620 -18.40899775  -6.49817896  -7.93552614  -3.64091714 -29.98010886 
         361          362          363          364          365          366          367          368          369 
 21.86043496 -19.92013330 -24.16585573 -20.80485947 -12.53091714   5.57989114  -5.93472966  -7.99974769  -5.38723809 
         370          371          372          373          374          375          376          377          378 
-11.08039593 -16.13014359   2.75293158  -4.63404452 -13.53389075 -37.74845464 -30.17939241 -34.64729843 -32.52887813 
         379          380          381          382          383          384          385          386          387 
-42.54002838 -29.15523707 -39.00948419   4.54688834 -46.44724343 -36.04789549 -61.80342056 -33.99503940 -35.14469253 
         388          389          390          391          392          393          394          395          396 
 -2.11196742 -35.33403223 -43.73068429 -25.16782820 -27.58748133  14.58131074   3.88636404  -0.15290911 -21.71488750 
         397          398          399          400          401          402          403          404          405 
  6.70450076   7.39686644  -9.44736041   6.22511250   0.71263959  21.46511250 -17.84883257 -21.81313356 -17.58667907 
         406          407          408          409          410          411          412          413          414 
 -2.76752693 -25.99010400  12.61068353 -35.44716734 -22.33918272 -25.83997334  -7.64015822 -21.98117549 -21.63905814 
         415          416          417          418          419          420          421          422          423 
 -7.36916477 -17.60894982 -15.18492299  -7.16464031  -3.28918272 -13.77497334 -15.26015822 -37.22117549 -16.55443012 
         424          425          426          427          428          429          430          431          432 
-12.78109620  -3.40230038   9.57029517 -10.49610749   2.60943633 -51.87113193  32.07637239 -18.48413641 -13.19938818 
         433          434          435          436          437          438          439          440          441 
 -6.48053459 -12.26409077 -14.87515010 -12.35235225 -12.00976229  10.77670553  17.73242723 -14.57130025 -11.86815035 
         442          443          444          445          446          447          448          449          450 
  5.39765244   5.01918184  25.22216457  25.11057793  14.99937577  -7.07687784  31.44658697 -23.14245802  11.43713170 
         451          452          453          454          455          456          457          458          459 
  1.34258930  26.20161379  22.18976667   4.20058549  -1.24199159  -4.55120406  -6.83501376  21.34310001   3.35391882 
         460          461          462          463          464          465          466          467          468 
  6.37800841   6.45546261  26.42310001   3.77725215  25.42800841   3.06879594 -21.31209266  39.47546261   4.99622645 
         469          470          471          472          473          474          475          476          477 
 10.07622645 -13.98053008  25.12786006  -1.34331888   7.28507127  12.05374553  -9.77113025 -12.49709371 -20.65907687 
         478          479          480          481          482          483          484          485          486 
  0.95894475  -4.06500033  16.19894475 -18.18930132  10.04679031  12.36092313 -14.28105525  -2.79500033  12.29069868 
         487          488          489          490          491          492          493          494          495 
 -3.28006917   0.08261018  -4.26786604  40.87175166  30.70280687  38.82570181  23.32017675  18.72753297   9.02803391 
         496          497          498          499          500          501          502          503          504 
 14.23196437  12.38746594  60.33614020  22.96086631   7.75803391  17.93877829  -8.80837378  -3.22487752  -8.85358670 
         505          506          507          508          509          510          511          512          513 
-13.27910304 -13.77596024  -3.55212718  -3.09439474  -6.15152800  -1.68468584  -0.12466077   3.36447500   9.52416557 
         514          515          516          517          518          519          520          521          522 
  6.01329553   8.18860400  21.61389580   1.74010429  -6.11233555 -23.89249859 -15.62593383  21.19250141  24.82102617 
         523          524          525          526          527          528          529          530          531 
-10.32490501  15.19822228  23.39643424  11.69374469  -1.39519269 -22.62249859  25.35822228  31.16707803  -3.65079531 
         532          533          534          535          536          537          538          539          540 
  1.06309938   7.76230978  -6.97949662  16.65322313  29.25362121  51.16806052  44.59138661  40.40292876  36.68485799 
         541          542          543          544          545          546          547          548          549 
 10.52670820   3.96364391  13.83785432  25.34271458  19.13043433  -5.09916759  36.71193839  44.52859782  37.80013997 
         550          551          552          553          554          555          556          557          558 
  4.11391941   6.01752179   3.61506552  58.93492579  37.17137695  29.22580902  40.27735117  -6.86233495   9.70363935 
         559          560          561          562          563          564          565          566          567 
  9.70224173  13.39578547  36.02020129  10.26403215 -22.43223644  51.12886954  39.89552897  45.86707112  18.53085056 
         568          569          570          571          572          573          574          575          576 
 33.98111960   0.88699667  43.50685694  42.37457669  56.24497477  30.49208075  54.22607350   7.88472843  22.41420787 
         577          578          579          580          581          582          583          584          585 
 28.83906814  52.47178789  40.94218597  23.48662528  11.82995137   1.14180741  24.63540978   2.54795352  58.50281379 
         586          587          588          589          590          591          592          593          594 
 11.01553354  30.40038672  28.34903270  48.55071106  55.48499970  23.20933136  54.32818172  38.51628865  30.46317552 
         595          596          597          598          599          600          601          602          603 
 45.37539293  25.75349985  51.34683164  -8.93424489 -33.58626680 -29.25424489 -10.12938463  16.04333513   9.34321137 
         604          605          606          607          608          609          610          611          612 
 16.46575511  22.04394871   6.26656035   3.22910408   9.65396435  -6.46361027  -2.05849663   0.21597830   7.47666787 
         613          614          615          616          617          618          619          620          621 
  5.89747183   2.76943260   5.28727533  19.60930320 -18.22472490 -16.45182997  38.11776593  25.97013247  34.84930320 
         622          623          624          625          626          627          628          629          630 
 -1.82673250 -32.61805824 -72.53333213  22.14930320 -23.15512265  -9.75805824  -8.40849663 -42.96402170  -0.56138750 
         631          632          633          634          635          636          637          638          639 
 26.71224415  24.55073601  23.83591104  -4.59937175  -2.34359124   3.72597072   4.82123111  -1.92203125  -4.48015766 
         640          641          642          643          644          645          646          647          648 
 20.05666759   3.39810786   7.08393964  18.74610902  -0.05311931 -31.49590190 -14.92279497 -15.99946318   9.27918859 
         649          650          651          652          653          654          655          656          657 
  5.72562731  -2.61470332  15.99624859  -2.25193624   2.87421160   0.64562731  20.24529668   7.74124859  10.49421160 
         658          659          660          661          662          663          664          665          666 
  3.22303706 -10.07802882  -8.13795427  -7.16770448  20.24529668   6.21473043 -35.25371679  17.07272193  -6.57174318 
         667          668          669          670          671          672          673          674          675 
 -6.95025770   5.55649856   0.55395275  -7.65652362  30.99031278  -2.33840985 -15.24759104   3.01649856  12.57124380 
         676          677          678          679          680          681          682          683          684 
 27.58051749  -4.87840985 -27.52425770  31.62124380  -9.89715571  10.21891280   2.98135410   1.95733610  -7.92040122 
         685          686          687          688          689          690          691          692          693 
 -2.21045740  -6.47251673 -11.69671888  -3.47796851 -11.54435250 -19.52222824 -19.21301886 -20.78891803 -31.86422102 
         694          695          696          697          698          699          700          701          702 
-33.66411167 -17.09805675 -14.41626612 -31.70869083   3.96163080 -15.16733864 -25.34848347 -10.22459939 -21.59149246 
         703          704          705          706          707          708          709          710          711 
  4.63683933 -14.49849130 -19.76353939  -4.82239088  -8.37457637 -11.20075091  -5.52964941  -1.93534342   3.67759233 
         712          713          714          715          716          717          718          719          720 
 13.49171319  19.56873682   2.44582459  13.44400424  14.08307322  -9.85651879 -21.79205137  19.27626119  30.19940100 
         721          722          723          724          725          726          727          728          729 
 28.26914431  32.20692512  23.73674024   8.43486527  17.23394514  44.92917524  18.29360798  36.96271733  13.09153194 
         730          731          732          733          734          735          736          737          738 
 32.72794514  25.17810408  58.73906864   1.66153194  26.37794514   7.50989371   5.22870831  -5.61487848  -7.99639736 
         739          740          741          742          743          744          745          746          747 
 33.17991369  23.33841713   1.43452024  -2.14941182   3.08912390  -1.25339423   9.73930106  19.30860264  -3.35700939 
         748          749          750          751          752          753          754          755          756 
 -3.07758287  -0.50487746   7.63660577  54.62660577  15.66596773  23.75360264  -7.22941182 -14.69087610   3.82660577 
         757          758          759          760          761          762          763          764          765 
 14.81930106  18.67360264  41.11841713  -7.07087610  19.06660577   4.43375816  -1.80468943 -11.14947202  -7.97974971 
         766          767          768          769          770          771          772          773          774 
  8.01182384   3.30006464 -27.16541202  10.67806982  -2.08523570  -8.26077833  -0.69814522  20.91217943  24.43956769 
         775          776          777          778          779          780          781          782          783 
 35.71526670  22.68449884  23.31135832  27.31717819  20.20014139   2.83806427  -4.28718168 -11.14443980   0.22508564 
         784          785          786          787          788          789          790          791          792 
-10.07427184  -6.60931098  -3.73729744  18.15845543  -9.77101811 -31.20009866 -10.43250918   7.91975171   7.64419197 
         793          794          795          796          797          798          799          800          801 
 19.97307931  15.58385980  -0.27661686  -0.35170645  21.07277472  24.03736507  30.45878580  36.40053496  23.76834322 
         802          803          804          805          806          807          808          809          810 
  0.27576629  -0.92281298  47.83053496  21.65343019 -20.00185139 -23.11478698 -21.13022537 -53.78075044 -27.04672754 
         811          812          813          814          815          816          817          818          819 
-38.86289327 -34.92896281 -30.56659627  13.87257446 -20.26346124 -15.49478698 -42.08522537 -19.85006087  -9.52896281 
         820          821          822          823          824          825          826          827          828 
-10.24659627  -1.36742554 -38.35478698  -2.98075044 -38.86289327  16.41257446 -10.10346124 -25.65478698 -54.78522537 
         829          830          831          832          833          834          835          836          837 
-53.78075044  -8.38289327 -14.18562947 -12.78659627 -11.52742554  -0.18383032   3.70458288   1.74274182  11.17370638 
         838          839          840          841          842          843          844          845          846 
 -2.72383032   1.35508288 -12.22725818  18.79370638  21.83266464   7.93282357  17.47947902  15.00023528  25.23768947 
         847          848          849          850          851          852          853          854          855 
-11.54778690  17.47947902  -4.56278690   2.55013420 -11.94467313   4.14447902  -1.50976472  -6.51231053 -18.53278690 
         856          857          858          859          860          861          862          863          864 
-39.35986580  10.49270400   4.71184888 -31.33891205  -7.98815112   0.75745159 -15.46142657 -14.73543222 -19.13321612 
         865          866          867          868          869          870          871          872          873 
-14.85535915 -11.58267615 -11.77259173   8.24524009 -14.13067031   0.75811888 -11.40971027 -34.42744063 -42.58083703 
         874          875          876          877          878          879          880          881          882 
-45.42461189 -46.56154566 -41.42275073 -29.56998370   1.50668503 -10.39427789 -16.45755031 -12.43049290  51.00446345 
         883          884          885          886          887          888          889          890          891 
-28.95183229 -17.79201087 -42.12292447   5.81112945  13.56867319  20.62853345  28.38625320   5.52441669  -0.53747293 
         892          893          894          895          896          897          898          899          900 
 10.07470088  22.03533985  10.25686679  19.49625320   9.13775726   8.06441669  20.41612945  -1.67132681  23.80353345 
         901          902          903          904          905          906          907          908          909 
 24.15291987 -14.21366653  17.81999700  10.04188808   5.82612616  -5.53640932   8.00463617   2.49116301   8.60644568 
         910          911          912          913          914          915          916          917          918 
  1.51594174  -5.72972067  -1.07657223 -28.92629344 -46.20809984 -36.75704675 -38.90275978 -47.32720936 -33.16054994 
         919          920          921          922          923          924          925          926          927 
-45.36143317 -59.82871342 -24.46720936 -33.48628154 -11.40903366 -24.22514958 -28.81870932 -39.63204420 -36.96570816 
         928          929          930          931          932          933          934          935          936 
 10.83172064   8.78286223  31.64461587  -4.89542327  15.12159027  15.34695197  18.87505397   2.15064001  13.86461587 
         937          938          939          940          941          942          943          944          945 
  7.80457673   6.86659027  -6.00171899   0.05118529   1.02571712  16.42039840  16.48820666   3.78996030  -1.00007884 
         946          947          948          949          950          951          952          953          954 
  2.00872302   1.94590264   4.81438969  20.86745725  16.47381084  10.37275466  22.22249318   0.67672991   7.44164937 
         955          956          957          958          959          960          961          962          963 
 25.85697797  38.10692830  11.31860666  22.68793845  22.40303639   9.92922640  12.27153916  10.83014971 -12.43255529 
         964          965          966          967          968          969          970          971          972 
-14.66439643 -13.20148769  -8.48105497 -17.09304296 -16.07100755 -17.50972949  -6.80492134  16.39253591  19.66827483 
         973          974          975          976          977          978          979          980          981 
 24.18068477  21.28589599  17.11245295  22.19009232  34.24732053  11.83890449   0.39728567 -18.46213065 -31.50725489 
         982          983          984          985          986          987          988          989          990 
-25.38603979  23.33432458  16.85334656  42.69599574  37.12406530  33.52376517  18.67036099  25.72884118 -15.68990830 
         991          992          993          994          995          996          997          998          999 
  1.27167565   7.17009170 -18.65030730 -40.37417640 -43.76070857 -46.40512349 -49.03239304 -47.58801515 -10.06312486 
        1000 
-54.06191406 
 [ reached 'max' / getOption("max.print") -- omitted 3534 entries ]
plot(ambrup.lm)

Post-hoc comparisons

ambrup.emm <- emmeans(ambrup.lm, ~ begin_date_year*age_group)
pairs(ambrup.emm, simple = "age_group")
begin_date_year = 1994:
 contrast                  estimate   SE   df t.ratio p.value
 age_group1 - age_group2     -30.08 2.43 4509 -12.396  <.0001
 age_group1 - age_group3     -60.68 2.34 4509 -25.898  <.0001
 age_group1 - age_group4     -88.23 2.33 4509 -37.897  <.0001
 age_group1 - age_group5    -112.27 2.35 4509 -47.847  <.0001
 age_group1 - age_group6    -133.25 2.38 4509 -56.030  <.0001
 age_group1 - age_group7    -151.10 2.43 4509 -62.278  <.0001
 age_group1 - age_group8    -167.06 2.52 4509 -66.418  <.0001
 age_group1 - age_group9    -179.91 2.70 4509 -66.709  <.0001
 age_group1 - age_group10   -190.79 2.98 4509 -63.929  <.0001
 age_group1 - age_group11   -200.07 3.80 4509 -52.712  <.0001
 age_group2 - age_group3     -30.61 1.47 4509 -20.831  <.0001
 age_group2 - age_group4     -58.16 1.45 4509 -40.238  <.0001
 age_group2 - age_group5     -82.19 1.47 4509 -55.784  <.0001
 age_group2 - age_group6    -103.18 1.52 4509 -67.797  <.0001
 age_group2 - age_group7    -121.02 1.59 4509 -75.943  <.0001
 age_group2 - age_group8    -136.98 1.72 4509 -79.461  <.0001
 age_group2 - age_group9    -149.83 1.98 4509 -75.777  <.0001
 age_group2 - age_group10   -160.71 2.35 4509 -68.264  <.0001
 age_group2 - age_group11   -170.00 3.32 4509 -51.197  <.0001
 age_group3 - age_group4     -27.55 1.29 4509 -21.351  <.0001
 age_group3 - age_group5     -51.59 1.32 4509 -39.058  <.0001
 age_group3 - age_group6     -72.57 1.37 4509 -52.870  <.0001
 age_group3 - age_group7     -90.42 1.45 4509 -62.372  <.0001
 age_group3 - age_group8    -106.38 1.59 4509 -66.883  <.0001
 age_group3 - age_group9    -119.23 1.86 4509 -64.069  <.0001
 age_group3 - age_group10   -130.11 2.26 4509 -57.639  <.0001
 age_group3 - age_group11   -139.39 3.25 4509 -42.868  <.0001
 age_group4 - age_group5     -24.03 1.29 4509 -18.604  <.0001
 age_group4 - age_group6     -45.02 1.34 4509 -33.485  <.0001
 age_group4 - age_group7     -62.86 1.42 4509 -44.190  <.0001
 age_group4 - age_group8     -78.82 1.57 4509 -50.344  <.0001
 age_group4 - age_group9     -91.67 1.84 4509 -49.832  <.0001
 age_group4 - age_group10   -102.55 2.24 4509 -45.788  <.0001
 age_group4 - age_group11   -111.84 3.24 4509 -34.522  <.0001
 age_group5 - age_group6     -20.99 1.37 4509 -15.299  <.0001
 age_group5 - age_group7     -38.83 1.45 4509 -26.823  <.0001
 age_group5 - age_group8     -54.79 1.59 4509 -34.516  <.0001
 age_group5 - age_group9     -67.64 1.86 4509 -36.422  <.0001
 age_group5 - age_group10    -78.52 2.25 4509 -34.832  <.0001
 age_group5 - age_group11    -87.81 3.25 4509 -27.028  <.0001
 age_group6 - age_group7     -17.84 1.49 4509 -11.957  <.0001
 age_group6 - age_group8     -33.81 1.63 4509 -20.774  <.0001
 age_group6 - age_group9     -46.65 1.89 4509 -24.679  <.0001
 age_group6 - age_group10    -57.53 2.28 4509 -25.215  <.0001
 age_group6 - age_group11    -66.82 3.27 4509 -20.453  <.0001
 age_group7 - age_group8     -15.96 1.69 4509  -9.454  <.0001
 age_group7 - age_group9     -28.81 1.94 4509 -14.835  <.0001
 age_group7 - age_group10    -39.69 2.32 4509 -17.073  <.0001
 age_group7 - age_group11    -48.98 3.30 4509 -14.859  <.0001
 age_group8 - age_group9     -12.85 2.04 4509  -6.288  <.0001
 age_group8 - age_group10    -23.73 2.41 4509  -9.846  <.0001
 age_group8 - age_group11    -33.02 3.35 4509  -9.841  <.0001
 age_group9 - age_group10    -10.88 2.59 4509  -4.198  0.0014
 age_group9 - age_group11    -20.17 3.49 4509  -5.786  <.0001
 age_group10 - age_group11    -9.29 3.71 4509  -2.501  0.3038

P value adjustment: tukey method for comparing a family of 11 estimates 
test(pairs(ambrup.emm, by = "begin_date_year"), by = NULL, adjust = "mvt")
 contrast                  begin_date_year estimate   SE   df t.ratio p.value
 age_group1 - age_group2              1994   -30.08 2.43 4509 -12.396  <.0001
 age_group1 - age_group3              1994   -60.68 2.34 4509 -25.898  <.0001
 age_group1 - age_group4              1994   -88.23 2.33 4509 -37.897  <.0001
 age_group1 - age_group5              1994  -112.27 2.35 4509 -47.847  <.0001
 age_group1 - age_group6              1994  -133.25 2.38 4509 -56.030  <.0001
 age_group1 - age_group7              1994  -151.10 2.43 4509 -62.278  <.0001
 age_group1 - age_group8              1994  -167.06 2.52 4509 -66.418  <.0001
 age_group1 - age_group9              1994  -179.91 2.70 4509 -66.709  <.0001
 age_group1 - age_group10             1994  -190.79 2.98 4509 -63.929  <.0001
 age_group1 - age_group11             1994  -200.07 3.80 4509 -52.712  <.0001
 age_group2 - age_group3              1994   -30.61 1.47 4509 -20.831  <.0001
 age_group2 - age_group4              1994   -58.16 1.45 4509 -40.238  <.0001
 age_group2 - age_group5              1994   -82.19 1.47 4509 -55.784  <.0001
 age_group2 - age_group6              1994  -103.18 1.52 4509 -67.797  <.0001
 age_group2 - age_group7              1994  -121.02 1.59 4509 -75.943  <.0001
 age_group2 - age_group8              1994  -136.98 1.72 4509 -79.461  <.0001
 age_group2 - age_group9              1994  -149.83 1.98 4509 -75.777  <.0001
 age_group2 - age_group10             1994  -160.71 2.35 4509 -68.264  <.0001
 age_group2 - age_group11             1994  -170.00 3.32 4509 -51.197  <.0001
 age_group3 - age_group4              1994   -27.55 1.29 4509 -21.351  <.0001
 age_group3 - age_group5              1994   -51.59 1.32 4509 -39.058  <.0001
 age_group3 - age_group6              1994   -72.57 1.37 4509 -52.870  <.0001
 age_group3 - age_group7              1994   -90.42 1.45 4509 -62.372  <.0001
 age_group3 - age_group8              1994  -106.38 1.59 4509 -66.883  <.0001
 age_group3 - age_group9              1994  -119.23 1.86 4509 -64.069  <.0001
 age_group3 - age_group10             1994  -130.11 2.26 4509 -57.639  <.0001
 age_group3 - age_group11             1994  -139.39 3.25 4509 -42.868  <.0001
 age_group4 - age_group5              1994   -24.03 1.29 4509 -18.604  <.0001
 age_group4 - age_group6              1994   -45.02 1.34 4509 -33.485  <.0001
 age_group4 - age_group7              1994   -62.86 1.42 4509 -44.190  <.0001
 age_group4 - age_group8              1994   -78.82 1.57 4509 -50.344  <.0001
 age_group4 - age_group9              1994   -91.67 1.84 4509 -49.832  <.0001
 age_group4 - age_group10             1994  -102.55 2.24 4509 -45.788  <.0001
 age_group4 - age_group11             1994  -111.84 3.24 4509 -34.522  <.0001
 age_group5 - age_group6              1994   -20.99 1.37 4509 -15.299  <.0001
 age_group5 - age_group7              1994   -38.83 1.45 4509 -26.823  <.0001
 age_group5 - age_group8              1994   -54.79 1.59 4509 -34.516  <.0001
 age_group5 - age_group9              1994   -67.64 1.86 4509 -36.422  <.0001
 age_group5 - age_group10             1994   -78.52 2.25 4509 -34.832  <.0001
 age_group5 - age_group11             1994   -87.81 3.25 4509 -27.028  <.0001
 age_group6 - age_group7              1994   -17.84 1.49 4509 -11.957  <.0001
 age_group6 - age_group8              1994   -33.81 1.63 4509 -20.774  <.0001
 age_group6 - age_group9              1994   -46.65 1.89 4509 -24.679  <.0001
 age_group6 - age_group10             1994   -57.53 2.28 4509 -25.215  <.0001
 age_group6 - age_group11             1994   -66.82 3.27 4509 -20.453  <.0001
 age_group7 - age_group8              1994   -15.96 1.69 4509  -9.454  <.0001
 age_group7 - age_group9              1994   -28.81 1.94 4509 -14.835  <.0001
 age_group7 - age_group10             1994   -39.69 2.32 4509 -17.073  <.0001
 age_group7 - age_group11             1994   -48.98 3.30 4509 -14.859  <.0001
 age_group8 - age_group9              1994   -12.85 2.04 4509  -6.288  <.0001
 age_group8 - age_group10             1994   -23.73 2.41 4509  -9.846  <.0001
 age_group8 - age_group11             1994   -33.02 3.35 4509  -9.841  <.0001
 age_group9 - age_group10             1994   -10.88 2.59 4509  -4.198  0.0015
 age_group9 - age_group11             1994   -20.17 3.49 4509  -5.786  <.0001
 age_group10 - age_group11            1994    -9.29 3.71 4509  -2.501  0.2777

P value adjustment: mvt method for 55 tests 
#export tables
# #interpret(eta_squared(ambrup.lm), rules = "cohen1992") %>%
#   write.csv(file = "Outputs/Tables/ambrup_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
ambrup.slopes <- emtrends(ambrup.lm, ~age_group, var = "begin_date_year")
# Compare estimated slopes to 0
ambrup.slope.contrasts <- test(ambrup.slopes) %>% 
  mutate(Species = "Rock Bass") %>% 
  rename(Age = age_group)

ambrup.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/ambrup_emmeans.csv")

Plot raw data

(ambrup.length.year.plot <- ggplot(data = ambrup %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)
`geom_smooth()` using formula = 'y ~ x'

Marginal Effects

result <- predict_response(ambrup.lm, c("begin_date_year", "age_group"))

# plot(result)
# test_predictions(result) %>% 
#   write.csv(file = "Outputs/Tables/ambrup_pairwise_length_time_slopes.csv", row.names = F)

(ambrup.marginal.plot <- ggpredict(ambrup.lm, terms = c("begin_date_year", "age_group")) %>%  
    plot()+
    #stat_poly_eq(use_label("eq"))+
    stat_regline_equation()+
    stat_poly_line()+
    # annotate(geom = "text", label = "y = 940 - 0.33x", x = 1990, y = 285)+
    # annotate(geom = "text", label = "y = 760 - 0.25x", x = 1990, y = 270)+
    # annotate(geom = "text", label = "y = 430 - 0.09x", x = 1990, y = 258)+
    # annotate(geom = "text", label = "y = 390 - 0.08x", x = 1990, y = 245)+
    # annotate(geom = "text", label = "y = 500 - 0.14x", x = 1990, y = 230)+
    # annotate(geom = "text", label = "y = 210 - 0.004x", x = 1990, y = 215)+
    # annotate(geom = "text", label = "y = 16 + 0.09x", x = 1990, y = 198)+
    # annotate(geom = "text", label = "y = 430 - 0.13x", x = 1990, y = 170)+
    # annotate(geom = "text", label = "y = 580 - 0.22x", x = 1990, y = 145)+
    # annotate(geom = "text", label = "y = 940 - 0.42x", x = 1990, y = 125)+
    # annotate(geom = "text", label = "y = 1.8E3 - 0.85x", x = 1990, y = 90)+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(title = NULL,
         y = "Mean Length-at-Age (mm)",
         x = "Year")+
    guides(fill = guide_legend(title = "Age", reverse = T), color = guide_legend(title = "Age", reverse = T))+
    theme_bw()
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/ambrup_marginal_effects_plot.tiff", 
       ambrup.marginal.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

Smallmouth Bass

Model

#filter data for only Black Crappie, Pomooxis nigromaculatus 
micdol <- all.grow.merge %>% filter(species == "smallmouth_bass") %>% 
  filter(age_group %in% c(0:10), #match age groups in BRTs
         !is.na(age_group), !is.na(begin_date_year), !is.na(length_mean_mm),
         !is.na(log_max_depth), !is.na(logarea))

#linear model
micdol.lm <- lm(length_mean_mm ~ begin_date_year*age_group + log_max_depth + logarea + doy, data = micdol)
summary(micdol.lm)

Call:
lm(formula = length_mean_mm ~ begin_date_year * age_group + log_max_depth + 
    logarea + doy, data = micdol)

Residuals:
     Min       1Q   Median       3Q      Max 
-131.802  -23.219    0.962   23.339  305.938 

Coefficients:
                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                  1.795e+02  6.186e+02   0.290   0.7717    
begin_date_year             -7.542e-02  3.123e-01  -0.242   0.8092    
age_group1                   1.328e+03  6.653e+02   1.996   0.0460 *  
age_group2                   5.222e+02  6.476e+02   0.806   0.4201    
age_group3                   4.624e+01  6.450e+02   0.072   0.9428    
age_group4                  -2.427e+02  6.507e+02  -0.373   0.7092    
age_group5                  -2.826e+02  6.601e+02  -0.428   0.6686    
age_group6                  -2.417e+02  6.684e+02  -0.362   0.7177    
age_group7                   3.444e+02  6.835e+02   0.504   0.6144    
age_group8                  -4.965e+01  7.048e+02  -0.070   0.9438    
age_group9                   8.656e+01  7.563e+02   0.114   0.9089    
age_group10                  8.955e+02  8.401e+02   1.066   0.2865    
log_max_depth               -1.832e+00  8.940e-01  -2.049   0.0405 *  
logarea                      5.144e+00  4.245e-01  12.118   <2e-16 ***
doy                          1.684e-01  1.445e-02  11.652   <2e-16 ***
begin_date_year:age_group1  -6.395e-01  3.357e-01  -1.905   0.0569 .  
begin_date_year:age_group2  -1.998e-01  3.268e-01  -0.611   0.5411    
begin_date_year:age_group3   7.034e-02  3.255e-01   0.216   0.8289    
begin_date_year:age_group4   2.436e-01  3.283e-01   0.742   0.4582    
begin_date_year:age_group5   2.849e-01  3.330e-01   0.856   0.3923    
begin_date_year:age_group6   2.809e-01  3.371e-01   0.833   0.4048    
begin_date_year:age_group7  -2.749e-04  3.446e-01  -0.001   0.9994    
begin_date_year:age_group8   2.077e-01  3.552e-01   0.585   0.5588    
begin_date_year:age_group9   1.494e-01  3.808e-01   0.392   0.6948    
begin_date_year:age_group10 -2.475e-01  4.224e-01  -0.586   0.5579    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 37.88 on 3601 degrees of freedom
  (38 observations deleted due to missingness)
Multiple R-squared:  0.8824,    Adjusted R-squared:  0.8816 
F-statistic:  1126 on 24 and 3601 DF,  p-value: < 2.2e-16
#calculate and interpret effect sizes
eta_squared(micdol.lm)
          begin_date_year                 age_group             log_max_depth                   logarea 
             8.839238e-03              8.628581e-01              5.133296e-07              4.226395e-03 
                      doy begin_date_year:age_group 
             4.847208e-03              1.652199e-03 
#interpret(eta_squared(micdol.lm), rules = "cohen1992")

#calculate AIC score
AIC(micdol.lm)
[1] 36673.54
#examine model fit
testDispersion(micdol.lm)

    DHARMa nonparametric dispersion test via sd of residuals fitted vs. simulated

data:  simulationOutput
dispersion = 0.9932, p-value = 0.712
alternative hypothesis: two.sided

simulation.output <- simulateResiduals(fittedModel = micdol.lm)

residuals(micdol.lm)
            1             2             3             4             5             6             7             8 
  15.75956500  -27.51880699  -11.51680699  -19.29651469  -32.19925295   -8.75462771  -10.22543483   26.50915349 
            9            10            11            12            13            14            15            16 
 -58.04470911  -25.16186591  -14.65281367  -26.08826465   -7.78084651  -12.46186591   16.54096304   18.01813409 
           17            18            19            20            21            22            23            24 
 -19.94470911   20.38971943   12.90687623  -10.32071541  -22.47680003    2.16720675  -17.11285236  -22.32257081 
           25            26            27            28            29            30            31            32 
 -19.60960035  -11.48976978  -29.05288091   34.63518509  -36.31027599  -66.58989614  -61.43761553  -20.47866617 
           33            34            35            36            37            38            39            40 
 -16.47928019  -21.55920102  -39.50738701    3.80058559  -24.81674832   33.52855844  -13.63957897  -25.48904281 
           41            42            43            44            45            46            47            48 
 -22.35144156    1.39883372   13.77210004   -3.50788601  -48.30221387  -40.13144156   16.27597658   -6.18504281 
           49            50            51            52            53            54            55            56 
 -26.30241108    9.25758892  -52.41667807  -29.80030494   37.43281121  -11.77667807  -27.33718879  -22.18030494 
           57            58            59            60            61            62            63            64 
  47.65290901   11.83113262  -10.82718879  -38.22937087    3.63137472  -80.68944939   20.89408181    9.31771335 
           65            66            67            68            69            70            71            72 
  12.95929869   20.55725249  -48.16911597  -14.34544159   26.50485277   16.53734681  -36.64533333   48.30326197 
           73            74            75            76            77            78            79            80 
 -25.01780766  -41.77710179   10.99873191   23.07266032  -43.65271444   -9.07689372   20.14273191  -39.15733968 
           81            82            83            84            85            86            87            88 
   7.14728556  -48.45742994  -92.57710179   30.66343624  -10.89810370  -42.20960558  -27.75656376   10.46550020 
           89            90            91            92            93            94            95            96 
  62.43813770  -26.47493303   61.75658489   91.06364677   40.82713188   -3.90452352  -15.43111066   21.54719823 
           97            98            99           100           101           102           103           104 
 -48.98130762  -44.06691399  -46.37312263  -36.46550200  -33.74130762   -7.23691399  -31.13312263  -61.84691399 
          105           106           107           108           109           110           111           112 
  -0.49983539   -7.57699145  -44.05794185  -49.58874746  -38.45135384  -22.63889581  -45.37439874   -2.60338458 
          113           114           115           116           117           118           119           120 
 -27.82590167    2.47661542  -29.25939207  -27.59439874  -12.74939207    1.15575108  -20.36939207   -2.60338458 
          121           122           123           124           125           126           127           128 
   8.77575108  -36.48439874   -6.42773207  -40.07991136  -18.55948702  -16.27716984  -24.82838458  -19.35923500 
          129           130           131           132           133           134           135           136 
   5.09782067  -28.12598902   27.19129812   11.78288346   26.47898083  -16.98185716   22.82117735   15.20117735 
          137           138           139           140           141           142           143           144 
 132.50975356   37.24064430  -31.41296175  -28.28704887 -116.82236066  -11.40320912    9.81295113    6.37679088 
          145           146           147           148           149           150           151           152 
 -12.26184001  -11.26221641  -32.60379998  -20.51235366  -31.06838220   60.54506811    2.95983191    1.57184419 
          153           154           155           156           157           158           159           160 
  13.36374632    3.69020669   45.09678116    9.29238403  -16.96624686   11.45854427   46.26337673  -24.81397382 
          161           162           163           164           165           166           167           168 
  35.18505661   13.19184138  -21.38845136  -37.00734295    8.10320404 -115.36845136  -45.23679596  -46.78845136 
          169           170           171           172           173           174           175           176 
 -46.69949036   16.30937683   12.74491980    0.43199840   18.96893236  -10.28349486   22.97029650   -9.13948231 
          177           178           179           180           181           182           183           184 
  31.21254751   10.22693332  -43.30830280  -19.58304812   -9.12570223   -0.10148134    3.93661588   37.98747693 
          185           186           187           188           189           190           191           192 
  25.62886534   71.14929591   42.89674671   27.65674671   62.30849266   61.60457970   36.59630223   68.76326752 
          193           194           195           196           197           198           199           200 
  51.33742953   61.85511282   46.12130223   48.79742953   51.69511282   21.34202975   34.66708694  -16.21291186 
          201           202           203           204           205           206           207           208 
  -3.85877132  -12.79871562   -3.85624640    0.29708814   -8.93877132  -77.57737534  -64.02305892  -89.14797025 
          209           210           211           212           213           214           215           216 
 -73.75871562   30.85708694   23.15708814   11.38122868   -5.60305892   22.61202975   25.30128438   61.33708694 
          217           218           219           220           221           222           223           224 
 -36.10818318   13.03857886   10.30210423   18.03403094   30.52764418   41.01463444    5.66034564   -5.61961051 
          225           226           227           228           229           230           231           232 
 -17.67512416  -40.90364000  -57.17552702  -35.98155555  -26.49477192  -21.79218098  -21.95739109  -44.47552702 
          233           234           235           236           237           238           239           240 
  -8.88822222  -49.35477192  -11.79739109  -57.81052702  -56.64022222  -40.90000811   -6.35290964  -30.49193173 
          241           242           243           244           245           246           247           248 
 -37.72595842  -44.26117877  -80.64054064  -75.76449939  -12.27290686   -0.44392626   86.39591176   54.42154067 
          249           250           251           252           253           254           255           256 
  36.37433946  -37.57917316   21.66226705   16.67534613   26.36979806   14.65052884   15.09155886    8.60276034 
          257           258           259           260           261           262           263           264 
  12.98274918   10.56535361   11.65076034   26.21433946   51.32082684   39.08948927   39.59076034    7.05608251 
          265           266           267           268           269           270           271           272 
   3.65316299   -3.54317316   32.10448927   13.83048915  -35.86699239   30.98062006   12.83602878  -67.44951085 
          273           274           275           276           277           278           279           280 
 -39.15534884  -31.17766555  -11.21534884    9.17212665    0.13602878   30.34048915  -18.83534884  -10.85766555 
          281           282           283           284           285           286           287           288 
  62.85706362   75.55527775  -23.33315219   17.70963622   37.67225571  -53.41036378   -9.62115128  -48.61731153 
          289           290           291           292           293           294           295           296 
  84.29739092   34.58207738   14.84576984   -3.10264482   14.53125731   34.15875239    1.99036909   -3.41715735 
          297           298           299           300           301           302           303           304 
   4.85418450   28.20308663   32.62654700   -2.63337790   -2.23654789   14.78919531   37.43114197   60.00948657 
          305           306           307           308           309           310           311           312 
  53.56289943   25.80844756    7.54502652  -24.13724745  -28.28989832  -29.26650186   13.45858661  -60.21392497 
          313           314           315           316           317           318           319           320 
 -26.46955327   16.00148087  -65.74893839  -69.72527596  -66.48909858    2.08526888    7.21216838   -0.65418187 
          321           322           323           324           325           326           327           328 
  -4.18909320   12.52010573   55.70241918   16.78670223  -52.67445696   41.42760700   17.80188661  -57.75445696 
          329           330           331           332           333           334           335           336 
  21.01024450   55.90188661   58.18193664   62.97611592   37.68601534   20.07140042   19.13172857  -35.61586862 
          337           338           339           340           341           342           343           344 
  97.48975701   75.27368542   30.13831066   99.38990534   32.98373022  -27.44885165    6.10728576  -40.14885165 
          345           346           347           348           349           350           351           352 
  18.30204177   22.90941330    5.65683144   26.51296884   36.30537720   36.67296884  -11.37513572  -24.18732204 
          353           354           355           356           357           358           359           360 
  -6.29513572  -37.48419274    5.60991299   33.21105049   23.75154453   15.78086439   45.39392974    4.63898816 
          361           362           363           364           365           366           367           368 
  40.22365679   34.59264752    9.49973599   58.55318487   55.77943229   68.33683612   62.22361709    7.48455355 
          369           370           371           372           373           374           375           376 
  -4.29565415   11.18610759  -22.01126716  -14.70470108   -8.34753888  -30.74788528   12.29356564   53.00216775 
          377           378           379           380           381           382           383           384 
 -34.32120866  -19.64984710   -2.41808713    0.31876568    0.81823855   47.10172366   54.01673493   41.64348112 
          385           386           387           388           389           390           391           392 
  16.42902926    7.28576759  -35.78433299  -52.85687540   23.21843645  -23.36019444  -14.40159233   15.78376602 
          393           394           395           396           397           398           399           400 
 -12.08763187  -24.61821418   33.14324536    3.08376602  -12.08763187   23.40376602   -7.00763187   22.01136996 
          401           402           403           404           405           406           407           408 
  34.26701029   54.37511486   -3.40357077   84.43401827  118.16796918  106.86003313   81.36267063   73.07431275 
          409           410           411           412           413           414           415           416 
  54.84271449  -10.41784540  -21.03193952  -22.62055354  -17.07268776    9.19318873  -15.49784540  -22.30193952 
          417           418           419           420           421           422           423           424 
   1.65466848   10.73933964   10.86731224  -73.42055354  -24.82066036  -51.11601944  -60.77872758   37.57476137 
          425           426           427           428           429           430           431           432 
  38.75886709   48.58000459   24.64249864    5.74981849   33.45788384   13.91194227   45.61809470   61.61886709 
          433           434           435           436           437           438           439           440 
  47.31000459   30.99249864   36.22981849   24.56788384    1.30458595   40.43661752   41.40910771  162.04539041 
          441           442           443           444           445           446           447           448 
 -86.16809267   44.21715055  -18.36611704   25.73542291   43.54012437  -32.00415577   64.02704436  121.91579545 
          449           450           451           452           453           454           455           456 
 115.80390843   90.43121323   78.73942734   59.18350891   24.08465686   66.56578390  121.95327924   29.72601345 
          457           458           459           460           461           462           463           464 
  66.79833705   -9.19595176    4.12392924   28.82257843   41.78379756  -14.13562622   31.36389470  111.61092000 
          465           466           467           468           469           470           471           472 
  13.56638754   41.62333695  -28.33446292  -16.97004516    6.04340116   31.46333695   25.25953708   -0.03671183 
          473           474           475           476           477           478           479           480 
 -36.62859884   42.89333695  -17.28546292   -7.65671183   12.90140116    9.11870595  -13.94525281  -30.51671183 
          481           482           483           484           485           486           487           488 
   2.29938632  -38.06138093  -31.33432918  -49.06088539  -54.67702202  -24.62461368  -52.28932918  -20.20900104 
          489           490           491           492           493           494           495           496 
 -52.87088539  -32.66368868  -56.82725668    7.54871965  -26.20804760  -29.42932918  -40.52900104  -20.55922078 
          497           498           499           500           501           502           503           504 
 -25.56609515  -19.84216674  -27.30087483  -53.43764208    5.14774300  -50.04381321  -38.72661650  -13.77100963 
          505           506           507           508           509           510           511           512 
  -2.48710750    1.47068620   30.61151487 -121.37607266  -20.12100963  -23.64080183   46.35038758    0.05289250 
          513           514           515           516           517           518           519           520 
 -68.80264714   69.12214147   16.56289250   25.94392734   -2.68855436   54.20736772    4.98296014  -16.10974800 
          521           522           523           524           525           526           527           528 
  -1.99452597  -14.50433938   31.94003233  -31.37906179   -3.25272198  -18.22244439   38.60894159   22.66749694 
          529           530           531           532           533           534           535           536 
  31.32883477   18.75680736   -2.52835028   23.36894159    8.90916361   33.03164972   50.99255561   58.92894159 
          537           538           539           540           541           542           543           544 
  15.89416361  -45.72825384   -5.92806446   27.64697392  -13.34240089   29.98282113  -28.24250771   -7.72214096 
          545           546           547           548           549           550           551           552 
  -3.41373507   15.10598424   -2.52879374    2.74587742  -11.50027349   -1.64730762   15.29759826   -2.03901576 
          553           554           555           556           557           558           559           560 
  19.48453960    7.82587742   -4.74614998  -12.78567933   28.15535904    7.67759826    6.85098424   12.28787293 
          561           562           563           564           565           566           567           568 
   3.73972651   23.40399496  -16.89361141   62.99040114   33.06909762   16.69483554    7.85038038    8.48780057 
          569           570           571           572           573           574           575           576 
  49.31199496  -16.89361141   25.75980057   -0.64133837   29.35485210   26.77019811   21.44017994   18.41846719 
          577           578           579           580           581           582           583           584 
  11.62595669   -1.43256904   -2.71802161    7.85038038   12.93280057    1.05199496   -6.73361141  -27.41746712 
          585           586           587           588           589           590           591           592 
  -4.10535634    1.14692288   11.17671667   -0.66183113   -2.30961962  -41.89342834   35.12733554   35.42829112 
          593           594           595           596           597           598           599           600 
  21.18097442   19.66664757   12.85426002  -33.23033125   -6.83587089   31.61829112   39.59597442  -44.08283617 
          601           602           603           604           605           606           607           608 
  21.87070359    5.23426002    9.16891772  305.93829112   33.24597442   14.33716383   11.11176662   -0.21033125 
          609           610           611           612           613           614           615           616 
 -38.58587089    2.40829112   36.20930775   49.89716383  -25.13341233  -64.54104062   35.01625124   -0.07207900 
          617           618           619           620           621           622           623           624 
   3.19229271  -24.62541233   32.15986526    1.99625124   15.28161359  -25.30960171  -12.48985677   24.35895938 
          625           626           627           628           629           630           631           632 
  -0.39852674    6.02329574   23.36799819   11.22040982   -0.69331535    7.28414420   -0.18571155    2.66314359 
          633           634           635           636           637           638           639           640 
  35.00966485   11.58326696   12.38768465    6.01414420    7.43428845    3.56974920   -1.97054401   -2.86670426 
          641           642           643           644           645           646           647           648 
  31.83466485  -13.34877531   26.25611063   -3.79257943  -13.98281127  -21.44145880   -1.07226205   17.52782499 
          649           650           651           652           653           654           655           656 
  35.90811063  -25.56400800    8.45385540  -24.40479213   -1.77617501   19.64275765   -2.55281127   10.30854120 
          657           658           659           660           661           662           663           664 
   9.08773795   64.64173732    2.04811247   80.14445604  -72.74205581  -95.68795008  -65.35431854   -1.69699868 
          665           666           667           668           669           670           671           672 
  32.90579371    4.46898264  -24.47832857    3.16121946  -23.99258380   -8.59123133  -42.43701489   -8.03567897 
          673           674           675           676           677           678           679           680 
 -25.15566190  -11.44378054    6.48741620  -26.37123133   20.66796541   -2.95567897  -20.45666190   40.62621946 
          681           682           683           684           685           686           687           688 
 -25.68591714  -23.83123133  -27.19701489  -11.85548483  -35.10727395   48.49117661  -14.78727395  -17.84414348 
          689           690           691           692           693           694           695           696 
  21.18617661   13.93940022   19.54158953  -24.94727395   31.05085652   53.30940022   23.35158953   -8.18327395 
          697           698           699           700           701           702           703           704 
   8.82585652    4.46450994   27.06273356   23.03107881   -5.43507714  -21.34203734   -4.69137076  -32.56727395 
          705           706           707           708           709           710           711           712 
  -1.92681014   14.90673217   17.74940022   14.32250738    4.72492286   22.68462933   -4.69137076    9.94227923 
          713           714           715           716           717           718           719           720 
  -6.72831908  -51.88582233    7.20694085  -31.96772077  -59.41703703   -9.95438744  -31.96084656    6.90243301 
          721           722           723           724           725           726           727           728 
  -0.00944136  -44.13301295  -31.48338771  -59.82148829  -36.28810321  -38.13965942  -19.50740697   32.30647122 
          729           730           731           732           733           734           735           736 
   5.49865126    4.93001282   14.86431248   19.57672084   35.36063622  -31.42609640   43.37418515   26.85873418 
          737           738           739           740           741           742           743           744 
  15.32115232   15.81084721   -2.40531028   10.40969808   27.67528013   56.34208315   13.41156689   -4.70616296 
          745           746           747           748           749           750           751           752 
 -39.07563266   80.83178548   53.42792288  103.86033124  -19.00590238    5.57585025   28.08521937   31.05136537 
          753           754           755           756           757           758           759           760 
  11.30484296    0.63001050   30.21385025   50.94521937   30.69382147   33.40323917    4.44001050   16.24385025 
          761           762           763           764           765           766           767           768 
 -18.27980501   -9.43889213   52.30631673   10.08233083   33.71824148   -3.88766917   26.76949106  -10.83536811 
          769           770           771           772           773           774           775           776 
  32.74418593   55.02871059   24.48025752   46.96818593   56.44281117   27.08871059   33.02253946   11.35692419 
          777           778           779           780           781           782           783           784 
  31.05085260   53.64881117   36.40204392   18.69442382   53.34253946   18.77418593   47.29881117   49.94871059 
          785           786           787           788           789           790           791           792 
  45.88076234   43.18253946   35.44973617   48.86666525  -10.00619435   12.85380565  105.22115478   81.38455123 
          793           794           795           796           797           798           799           800 
 127.91963970  -51.92429791   -4.20992621    9.94097968   61.05736566   49.58823456   11.42622487  115.46474416 
          801           802           803           804           805           806           807           808 
  49.41075164   52.12823456   44.41195690   74.81075164   69.81195690  116.53615837    7.90973749  -13.97377513 
          809           810           811           812           813           814           815           816 
 -56.05011270   12.75823456   31.71195690   24.19005711   22.60080858   21.72978919    5.78027932    6.82379879 
          817           818           819           820           821           822           823           824 
  -6.58945755    6.70595147    8.55031344   34.57427769   31.69541518  -23.83477092   -4.02947128  -18.04487917 
          825           826           827           828           829           830           831           832 
  46.09017196   24.41427769   26.80790923   25.69522908    3.14802148   -0.98572231   47.36017196   31.39927769 
          833           834           835           836           837           838           839           840 
  14.10790923   26.96522908    0.06329443   -2.82412604   11.34121235   10.47311078   46.18430752   43.80565999 
          841           842           843           844           845           846           847           848 
  52.74485673   23.49934605  -24.21878765   35.87311078   41.27934605  -21.87412604   33.33311078   51.42565999 
          849           850           851           852           853           854           855           856 
 -32.92842663  -39.53918042  -21.38534067   12.53796389  -29.45661842  -11.86949221   -3.46434796   12.99111279 
          857           858           859           860           861           862           863           864 
 -23.61509330  -31.49584709   10.50565204  -31.54534067   46.33602844  -44.86595175   38.07830332   27.21943035 
          865           866           867           868           869           870           871           872 
  54.38470347   68.45032327   71.67579840  121.11933816   43.05795361   40.56714299   38.75151469   41.47242058 
          873           874           875           876           877           878           879           880 
   9.13166370   24.34941319   43.82203307   59.19000567   41.42921549   56.34416890   22.70650529  -25.71910109 
          881           882           883           884           885           886           887           888 
 -40.72530973    3.87797752   -4.25508853    9.13934586   29.50489071  -20.47349471  -15.55910109  -12.78530973 
          889           890           891           892           893           894           895           896 
 -25.33202248   -6.79508853   14.21934586   14.26489071    8.73650529   -8.95510109   -9.39864306   -2.47202248 
          897           898           899           900           901           902           903           904 
  -7.08305871  -13.03768910  -54.76349471  -89.21910109  -24.21530973  -14.70305871   26.72911638   16.71030579 
          905           906           907           908           909           910           911           912 
  10.14740199   -1.56856691   16.56911638   19.25030579   29.32384555   31.45143309   59.89030579   49.64384555 
          913           914           915           916           917           918           919           920 
 -34.22177686  -50.16255250  -46.72272184  -50.52924794  -45.70316358  -10.80170404  -41.13155979  -48.80609903 
          921           922           923           924           925           926           927           928 
 -31.93270464  -38.47008184  -27.99177879    7.33752901   24.48936135    9.65633343   -5.79477848   -6.56432276 
          929           930           931           932           933           934           935           936 
  -7.31564322  -23.53059820  -11.89542950   -9.68341517  -27.82244546   16.22752901   17.88536135   -6.67782042 
          937           938           939           940           941           942           943           944 
  -0.89620705   22.99204087  -39.83542950   -4.09247099    9.88436135  -29.02982042  -19.94620705  -49.73254328 
          945           946           947           948           949           950           951           952 
 -15.27141517   16.20422121   39.08752901   11.78936135   11.80379295    8.75100547   26.47898167   42.61936797 
          953           954           955           956           957           958           959           960 
  36.62352998   26.90587993    9.00097411    1.47594244    8.16188643   14.77216467   -2.69507145    2.67728479 
          961           962           963           964           965           966           967           968 
  49.44482900   63.96014129   66.57994623   55.98883651   47.04651509   48.46769248   22.82406561   46.09563871 
          969           970           971           972           973           974           975           976 
  21.33187505   60.00031173   34.34837514   34.86855731   42.81296397   49.83326133   14.46284208   32.98995861 
          977           978           979           980           981           982           983           984 
  18.13024591  -15.92297312   -7.22476680  -13.17703299   24.89800883   20.62950136   21.41499909   20.09671029 
          985           986           987           988           989           990           991           992 
  19.04735241    0.18075414    9.54059129   24.90664715   43.35166858   56.77604028    9.33194616   -5.53394058 
          993           994           995           996           997           998           999          1000 
   9.15855417   14.43322532    8.39262649    9.71207442   11.55254065  -45.49371218   -2.47065030   12.39943644 
 [ reached 'max' / getOption("max.print") -- omitted 2626 entries ]
residuals(micdol.lm, quantileFunction = qnorm)
            1             2             3             4             5             6             7             8 
  15.75956500  -27.51880699  -11.51680699  -19.29651469  -32.19925295   -8.75462771  -10.22543483   26.50915349 
            9            10            11            12            13            14            15            16 
 -58.04470911  -25.16186591  -14.65281367  -26.08826465   -7.78084651  -12.46186591   16.54096304   18.01813409 
           17            18            19            20            21            22            23            24 
 -19.94470911   20.38971943   12.90687623  -10.32071541  -22.47680003    2.16720675  -17.11285236  -22.32257081 
           25            26            27            28            29            30            31            32 
 -19.60960035  -11.48976978  -29.05288091   34.63518509  -36.31027599  -66.58989614  -61.43761553  -20.47866617 
           33            34            35            36            37            38            39            40 
 -16.47928019  -21.55920102  -39.50738701    3.80058559  -24.81674832   33.52855844  -13.63957897  -25.48904281 
           41            42            43            44            45            46            47            48 
 -22.35144156    1.39883372   13.77210004   -3.50788601  -48.30221387  -40.13144156   16.27597658   -6.18504281 
           49            50            51            52            53            54            55            56 
 -26.30241108    9.25758892  -52.41667807  -29.80030494   37.43281121  -11.77667807  -27.33718879  -22.18030494 
           57            58            59            60            61            62            63            64 
  47.65290901   11.83113262  -10.82718879  -38.22937087    3.63137472  -80.68944939   20.89408181    9.31771335 
           65            66            67            68            69            70            71            72 
  12.95929869   20.55725249  -48.16911597  -14.34544159   26.50485277   16.53734681  -36.64533333   48.30326197 
           73            74            75            76            77            78            79            80 
 -25.01780766  -41.77710179   10.99873191   23.07266032  -43.65271444   -9.07689372   20.14273191  -39.15733968 
           81            82            83            84            85            86            87            88 
   7.14728556  -48.45742994  -92.57710179   30.66343624  -10.89810370  -42.20960558  -27.75656376   10.46550020 
           89            90            91            92            93            94            95            96 
  62.43813770  -26.47493303   61.75658489   91.06364677   40.82713188   -3.90452352  -15.43111066   21.54719823 
           97            98            99           100           101           102           103           104 
 -48.98130762  -44.06691399  -46.37312263  -36.46550200  -33.74130762   -7.23691399  -31.13312263  -61.84691399 
          105           106           107           108           109           110           111           112 
  -0.49983539   -7.57699145  -44.05794185  -49.58874746  -38.45135384  -22.63889581  -45.37439874   -2.60338458 
          113           114           115           116           117           118           119           120 
 -27.82590167    2.47661542  -29.25939207  -27.59439874  -12.74939207    1.15575108  -20.36939207   -2.60338458 
          121           122           123           124           125           126           127           128 
   8.77575108  -36.48439874   -6.42773207  -40.07991136  -18.55948702  -16.27716984  -24.82838458  -19.35923500 
          129           130           131           132           133           134           135           136 
   5.09782067  -28.12598902   27.19129812   11.78288346   26.47898083  -16.98185716   22.82117735   15.20117735 
          137           138           139           140           141           142           143           144 
 132.50975356   37.24064430  -31.41296175  -28.28704887 -116.82236066  -11.40320912    9.81295113    6.37679088 
          145           146           147           148           149           150           151           152 
 -12.26184001  -11.26221641  -32.60379998  -20.51235366  -31.06838220   60.54506811    2.95983191    1.57184419 
          153           154           155           156           157           158           159           160 
  13.36374632    3.69020669   45.09678116    9.29238403  -16.96624686   11.45854427   46.26337673  -24.81397382 
          161           162           163           164           165           166           167           168 
  35.18505661   13.19184138  -21.38845136  -37.00734295    8.10320404 -115.36845136  -45.23679596  -46.78845136 
          169           170           171           172           173           174           175           176 
 -46.69949036   16.30937683   12.74491980    0.43199840   18.96893236  -10.28349486   22.97029650   -9.13948231 
          177           178           179           180           181           182           183           184 
  31.21254751   10.22693332  -43.30830280  -19.58304812   -9.12570223   -0.10148134    3.93661588   37.98747693 
          185           186           187           188           189           190           191           192 
  25.62886534   71.14929591   42.89674671   27.65674671   62.30849266   61.60457970   36.59630223   68.76326752 
          193           194           195           196           197           198           199           200 
  51.33742953   61.85511282   46.12130223   48.79742953   51.69511282   21.34202975   34.66708694  -16.21291186 
          201           202           203           204           205           206           207           208 
  -3.85877132  -12.79871562   -3.85624640    0.29708814   -8.93877132  -77.57737534  -64.02305892  -89.14797025 
          209           210           211           212           213           214           215           216 
 -73.75871562   30.85708694   23.15708814   11.38122868   -5.60305892   22.61202975   25.30128438   61.33708694 
          217           218           219           220           221           222           223           224 
 -36.10818318   13.03857886   10.30210423   18.03403094   30.52764418   41.01463444    5.66034564   -5.61961051 
          225           226           227           228           229           230           231           232 
 -17.67512416  -40.90364000  -57.17552702  -35.98155555  -26.49477192  -21.79218098  -21.95739109  -44.47552702 
          233           234           235           236           237           238           239           240 
  -8.88822222  -49.35477192  -11.79739109  -57.81052702  -56.64022222  -40.90000811   -6.35290964  -30.49193173 
          241           242           243           244           245           246           247           248 
 -37.72595842  -44.26117877  -80.64054064  -75.76449939  -12.27290686   -0.44392626   86.39591176   54.42154067 
          249           250           251           252           253           254           255           256 
  36.37433946  -37.57917316   21.66226705   16.67534613   26.36979806   14.65052884   15.09155886    8.60276034 
          257           258           259           260           261           262           263           264 
  12.98274918   10.56535361   11.65076034   26.21433946   51.32082684   39.08948927   39.59076034    7.05608251 
          265           266           267           268           269           270           271           272 
   3.65316299   -3.54317316   32.10448927   13.83048915  -35.86699239   30.98062006   12.83602878  -67.44951085 
          273           274           275           276           277           278           279           280 
 -39.15534884  -31.17766555  -11.21534884    9.17212665    0.13602878   30.34048915  -18.83534884  -10.85766555 
          281           282           283           284           285           286           287           288 
  62.85706362   75.55527775  -23.33315219   17.70963622   37.67225571  -53.41036378   -9.62115128  -48.61731153 
          289           290           291           292           293           294           295           296 
  84.29739092   34.58207738   14.84576984   -3.10264482   14.53125731   34.15875239    1.99036909   -3.41715735 
          297           298           299           300           301           302           303           304 
   4.85418450   28.20308663   32.62654700   -2.63337790   -2.23654789   14.78919531   37.43114197   60.00948657 
          305           306           307           308           309           310           311           312 
  53.56289943   25.80844756    7.54502652  -24.13724745  -28.28989832  -29.26650186   13.45858661  -60.21392497 
          313           314           315           316           317           318           319           320 
 -26.46955327   16.00148087  -65.74893839  -69.72527596  -66.48909858    2.08526888    7.21216838   -0.65418187 
          321           322           323           324           325           326           327           328 
  -4.18909320   12.52010573   55.70241918   16.78670223  -52.67445696   41.42760700   17.80188661  -57.75445696 
          329           330           331           332           333           334           335           336 
  21.01024450   55.90188661   58.18193664   62.97611592   37.68601534   20.07140042   19.13172857  -35.61586862 
          337           338           339           340           341           342           343           344 
  97.48975701   75.27368542   30.13831066   99.38990534   32.98373022  -27.44885165    6.10728576  -40.14885165 
          345           346           347           348           349           350           351           352 
  18.30204177   22.90941330    5.65683144   26.51296884   36.30537720   36.67296884  -11.37513572  -24.18732204 
          353           354           355           356           357           358           359           360 
  -6.29513572  -37.48419274    5.60991299   33.21105049   23.75154453   15.78086439   45.39392974    4.63898816 
          361           362           363           364           365           366           367           368 
  40.22365679   34.59264752    9.49973599   58.55318487   55.77943229   68.33683612   62.22361709    7.48455355 
          369           370           371           372           373           374           375           376 
  -4.29565415   11.18610759  -22.01126716  -14.70470108   -8.34753888  -30.74788528   12.29356564   53.00216775 
          377           378           379           380           381           382           383           384 
 -34.32120866  -19.64984710   -2.41808713    0.31876568    0.81823855   47.10172366   54.01673493   41.64348112 
          385           386           387           388           389           390           391           392 
  16.42902926    7.28576759  -35.78433299  -52.85687540   23.21843645  -23.36019444  -14.40159233   15.78376602 
          393           394           395           396           397           398           399           400 
 -12.08763187  -24.61821418   33.14324536    3.08376602  -12.08763187   23.40376602   -7.00763187   22.01136996 
          401           402           403           404           405           406           407           408 
  34.26701029   54.37511486   -3.40357077   84.43401827  118.16796918  106.86003313   81.36267063   73.07431275 
          409           410           411           412           413           414           415           416 
  54.84271449  -10.41784540  -21.03193952  -22.62055354  -17.07268776    9.19318873  -15.49784540  -22.30193952 
          417           418           419           420           421           422           423           424 
   1.65466848   10.73933964   10.86731224  -73.42055354  -24.82066036  -51.11601944  -60.77872758   37.57476137 
          425           426           427           428           429           430           431           432 
  38.75886709   48.58000459   24.64249864    5.74981849   33.45788384   13.91194227   45.61809470   61.61886709 
          433           434           435           436           437           438           439           440 
  47.31000459   30.99249864   36.22981849   24.56788384    1.30458595   40.43661752   41.40910771  162.04539041 
          441           442           443           444           445           446           447           448 
 -86.16809267   44.21715055  -18.36611704   25.73542291   43.54012437  -32.00415577   64.02704436  121.91579545 
          449           450           451           452           453           454           455           456 
 115.80390843   90.43121323   78.73942734   59.18350891   24.08465686   66.56578390  121.95327924   29.72601345 
          457           458           459           460           461           462           463           464 
  66.79833705   -9.19595176    4.12392924   28.82257843   41.78379756  -14.13562622   31.36389470  111.61092000 
          465           466           467           468           469           470           471           472 
  13.56638754   41.62333695  -28.33446292  -16.97004516    6.04340116   31.46333695   25.25953708   -0.03671183 
          473           474           475           476           477           478           479           480 
 -36.62859884   42.89333695  -17.28546292   -7.65671183   12.90140116    9.11870595  -13.94525281  -30.51671183 
          481           482           483           484           485           486           487           488 
   2.29938632  -38.06138093  -31.33432918  -49.06088539  -54.67702202  -24.62461368  -52.28932918  -20.20900104 
          489           490           491           492           493           494           495           496 
 -52.87088539  -32.66368868  -56.82725668    7.54871965  -26.20804760  -29.42932918  -40.52900104  -20.55922078 
          497           498           499           500           501           502           503           504 
 -25.56609515  -19.84216674  -27.30087483  -53.43764208    5.14774300  -50.04381321  -38.72661650  -13.77100963 
          505           506           507           508           509           510           511           512 
  -2.48710750    1.47068620   30.61151487 -121.37607266  -20.12100963  -23.64080183   46.35038758    0.05289250 
          513           514           515           516           517           518           519           520 
 -68.80264714   69.12214147   16.56289250   25.94392734   -2.68855436   54.20736772    4.98296014  -16.10974800 
          521           522           523           524           525           526           527           528 
  -1.99452597  -14.50433938   31.94003233  -31.37906179   -3.25272198  -18.22244439   38.60894159   22.66749694 
          529           530           531           532           533           534           535           536 
  31.32883477   18.75680736   -2.52835028   23.36894159    8.90916361   33.03164972   50.99255561   58.92894159 
          537           538           539           540           541           542           543           544 
  15.89416361  -45.72825384   -5.92806446   27.64697392  -13.34240089   29.98282113  -28.24250771   -7.72214096 
          545           546           547           548           549           550           551           552 
  -3.41373507   15.10598424   -2.52879374    2.74587742  -11.50027349   -1.64730762   15.29759826   -2.03901576 
          553           554           555           556           557           558           559           560 
  19.48453960    7.82587742   -4.74614998  -12.78567933   28.15535904    7.67759826    6.85098424   12.28787293 
          561           562           563           564           565           566           567           568 
   3.73972651   23.40399496  -16.89361141   62.99040114   33.06909762   16.69483554    7.85038038    8.48780057 
          569           570           571           572           573           574           575           576 
  49.31199496  -16.89361141   25.75980057   -0.64133837   29.35485210   26.77019811   21.44017994   18.41846719 
          577           578           579           580           581           582           583           584 
  11.62595669   -1.43256904   -2.71802161    7.85038038   12.93280057    1.05199496   -6.73361141  -27.41746712 
          585           586           587           588           589           590           591           592 
  -4.10535634    1.14692288   11.17671667   -0.66183113   -2.30961962  -41.89342834   35.12733554   35.42829112 
          593           594           595           596           597           598           599           600 
  21.18097442   19.66664757   12.85426002  -33.23033125   -6.83587089   31.61829112   39.59597442  -44.08283617 
          601           602           603           604           605           606           607           608 
  21.87070359    5.23426002    9.16891772  305.93829112   33.24597442   14.33716383   11.11176662   -0.21033125 
          609           610           611           612           613           614           615           616 
 -38.58587089    2.40829112   36.20930775   49.89716383  -25.13341233  -64.54104062   35.01625124   -0.07207900 
          617           618           619           620           621           622           623           624 
   3.19229271  -24.62541233   32.15986526    1.99625124   15.28161359  -25.30960171  -12.48985677   24.35895938 
          625           626           627           628           629           630           631           632 
  -0.39852674    6.02329574   23.36799819   11.22040982   -0.69331535    7.28414420   -0.18571155    2.66314359 
          633           634           635           636           637           638           639           640 
  35.00966485   11.58326696   12.38768465    6.01414420    7.43428845    3.56974920   -1.97054401   -2.86670426 
          641           642           643           644           645           646           647           648 
  31.83466485  -13.34877531   26.25611063   -3.79257943  -13.98281127  -21.44145880   -1.07226205   17.52782499 
          649           650           651           652           653           654           655           656 
  35.90811063  -25.56400800    8.45385540  -24.40479213   -1.77617501   19.64275765   -2.55281127   10.30854120 
          657           658           659           660           661           662           663           664 
   9.08773795   64.64173732    2.04811247   80.14445604  -72.74205581  -95.68795008  -65.35431854   -1.69699868 
          665           666           667           668           669           670           671           672 
  32.90579371    4.46898264  -24.47832857    3.16121946  -23.99258380   -8.59123133  -42.43701489   -8.03567897 
          673           674           675           676           677           678           679           680 
 -25.15566190  -11.44378054    6.48741620  -26.37123133   20.66796541   -2.95567897  -20.45666190   40.62621946 
          681           682           683           684           685           686           687           688 
 -25.68591714  -23.83123133  -27.19701489  -11.85548483  -35.10727395   48.49117661  -14.78727395  -17.84414348 
          689           690           691           692           693           694           695           696 
  21.18617661   13.93940022   19.54158953  -24.94727395   31.05085652   53.30940022   23.35158953   -8.18327395 
          697           698           699           700           701           702           703           704 
   8.82585652    4.46450994   27.06273356   23.03107881   -5.43507714  -21.34203734   -4.69137076  -32.56727395 
          705           706           707           708           709           710           711           712 
  -1.92681014   14.90673217   17.74940022   14.32250738    4.72492286   22.68462933   -4.69137076    9.94227923 
          713           714           715           716           717           718           719           720 
  -6.72831908  -51.88582233    7.20694085  -31.96772077  -59.41703703   -9.95438744  -31.96084656    6.90243301 
          721           722           723           724           725           726           727           728 
  -0.00944136  -44.13301295  -31.48338771  -59.82148829  -36.28810321  -38.13965942  -19.50740697   32.30647122 
          729           730           731           732           733           734           735           736 
   5.49865126    4.93001282   14.86431248   19.57672084   35.36063622  -31.42609640   43.37418515   26.85873418 
          737           738           739           740           741           742           743           744 
  15.32115232   15.81084721   -2.40531028   10.40969808   27.67528013   56.34208315   13.41156689   -4.70616296 
          745           746           747           748           749           750           751           752 
 -39.07563266   80.83178548   53.42792288  103.86033124  -19.00590238    5.57585025   28.08521937   31.05136537 
          753           754           755           756           757           758           759           760 
  11.30484296    0.63001050   30.21385025   50.94521937   30.69382147   33.40323917    4.44001050   16.24385025 
          761           762           763           764           765           766           767           768 
 -18.27980501   -9.43889213   52.30631673   10.08233083   33.71824148   -3.88766917   26.76949106  -10.83536811 
          769           770           771           772           773           774           775           776 
  32.74418593   55.02871059   24.48025752   46.96818593   56.44281117   27.08871059   33.02253946   11.35692419 
          777           778           779           780           781           782           783           784 
  31.05085260   53.64881117   36.40204392   18.69442382   53.34253946   18.77418593   47.29881117   49.94871059 
          785           786           787           788           789           790           791           792 
  45.88076234   43.18253946   35.44973617   48.86666525  -10.00619435   12.85380565  105.22115478   81.38455123 
          793           794           795           796           797           798           799           800 
 127.91963970  -51.92429791   -4.20992621    9.94097968   61.05736566   49.58823456   11.42622487  115.46474416 
          801           802           803           804           805           806           807           808 
  49.41075164   52.12823456   44.41195690   74.81075164   69.81195690  116.53615837    7.90973749  -13.97377513 
          809           810           811           812           813           814           815           816 
 -56.05011270   12.75823456   31.71195690   24.19005711   22.60080858   21.72978919    5.78027932    6.82379879 
          817           818           819           820           821           822           823           824 
  -6.58945755    6.70595147    8.55031344   34.57427769   31.69541518  -23.83477092   -4.02947128  -18.04487917 
          825           826           827           828           829           830           831           832 
  46.09017196   24.41427769   26.80790923   25.69522908    3.14802148   -0.98572231   47.36017196   31.39927769 
          833           834           835           836           837           838           839           840 
  14.10790923   26.96522908    0.06329443   -2.82412604   11.34121235   10.47311078   46.18430752   43.80565999 
          841           842           843           844           845           846           847           848 
  52.74485673   23.49934605  -24.21878765   35.87311078   41.27934605  -21.87412604   33.33311078   51.42565999 
          849           850           851           852           853           854           855           856 
 -32.92842663  -39.53918042  -21.38534067   12.53796389  -29.45661842  -11.86949221   -3.46434796   12.99111279 
          857           858           859           860           861           862           863           864 
 -23.61509330  -31.49584709   10.50565204  -31.54534067   46.33602844  -44.86595175   38.07830332   27.21943035 
          865           866           867           868           869           870           871           872 
  54.38470347   68.45032327   71.67579840  121.11933816   43.05795361   40.56714299   38.75151469   41.47242058 
          873           874           875           876           877           878           879           880 
   9.13166370   24.34941319   43.82203307   59.19000567   41.42921549   56.34416890   22.70650529  -25.71910109 
          881           882           883           884           885           886           887           888 
 -40.72530973    3.87797752   -4.25508853    9.13934586   29.50489071  -20.47349471  -15.55910109  -12.78530973 
          889           890           891           892           893           894           895           896 
 -25.33202248   -6.79508853   14.21934586   14.26489071    8.73650529   -8.95510109   -9.39864306   -2.47202248 
          897           898           899           900           901           902           903           904 
  -7.08305871  -13.03768910  -54.76349471  -89.21910109  -24.21530973  -14.70305871   26.72911638   16.71030579 
          905           906           907           908           909           910           911           912 
  10.14740199   -1.56856691   16.56911638   19.25030579   29.32384555   31.45143309   59.89030579   49.64384555 
          913           914           915           916           917           918           919           920 
 -34.22177686  -50.16255250  -46.72272184  -50.52924794  -45.70316358  -10.80170404  -41.13155979  -48.80609903 
          921           922           923           924           925           926           927           928 
 -31.93270464  -38.47008184  -27.99177879    7.33752901   24.48936135    9.65633343   -5.79477848   -6.56432276 
          929           930           931           932           933           934           935           936 
  -7.31564322  -23.53059820  -11.89542950   -9.68341517  -27.82244546   16.22752901   17.88536135   -6.67782042 
          937           938           939           940           941           942           943           944 
  -0.89620705   22.99204087  -39.83542950   -4.09247099    9.88436135  -29.02982042  -19.94620705  -49.73254328 
          945           946           947           948           949           950           951           952 
 -15.27141517   16.20422121   39.08752901   11.78936135   11.80379295    8.75100547   26.47898167   42.61936797 
          953           954           955           956           957           958           959           960 
  36.62352998   26.90587993    9.00097411    1.47594244    8.16188643   14.77216467   -2.69507145    2.67728479 
          961           962           963           964           965           966           967           968 
  49.44482900   63.96014129   66.57994623   55.98883651   47.04651509   48.46769248   22.82406561   46.09563871 
          969           970           971           972           973           974           975           976 
  21.33187505   60.00031173   34.34837514   34.86855731   42.81296397   49.83326133   14.46284208   32.98995861 
          977           978           979           980           981           982           983           984 
  18.13024591  -15.92297312   -7.22476680  -13.17703299   24.89800883   20.62950136   21.41499909   20.09671029 
          985           986           987           988           989           990           991           992 
  19.04735241    0.18075414    9.54059129   24.90664715   43.35166858   56.77604028    9.33194616   -5.53394058 
          993           994           995           996           997           998           999          1000 
   9.15855417   14.43322532    8.39262649    9.71207442   11.55254065  -45.49371218   -2.47065030   12.39943644 
 [ reached 'max' / getOption("max.print") -- omitted 2626 entries ]
plot(micdol.lm)

Post-hoc comparisons

micdol.emm <- emmeans(micdol.lm, ~ begin_date_year*age_group)
pairs(micdol.emm, simple = "age_group")
begin_date_year = 1993:
 contrast                 estimate   SE   df t.ratio p.value
 age_group0 - age_group1     -53.4 6.24 3601  -8.556  <.0001
 age_group0 - age_group2    -124.1 6.13 3601 -20.229  <.0001
 age_group0 - age_group3    -186.4 6.14 3601 -30.385  <.0001
 age_group0 - age_group4    -242.8 6.15 3601 -39.448  <.0001
 age_group0 - age_group5    -285.2 6.22 3601 -45.862  <.0001
 age_group0 - age_group6    -318.1 6.28 3601 -50.657  <.0001
 age_group0 - age_group7    -343.8 6.39 3601 -53.815  <.0001
 age_group0 - age_group8    -364.3 6.54 3601 -55.690  <.0001
 age_group0 - age_group9    -384.4 6.87 3601 -55.927  <.0001
 age_group0 - age_group10   -402.2 7.47 3601 -53.817  <.0001
 age_group1 - age_group2     -70.7 2.59 3601 -27.324  <.0001
 age_group1 - age_group3    -133.1 2.57 3601 -51.875  <.0001
 age_group1 - age_group4    -189.4 2.61 3601 -72.476  <.0001
 age_group1 - age_group5    -231.8 2.74 3601 -84.527  <.0001
 age_group1 - age_group6    -264.7 2.87 3601 -92.172  <.0001
 age_group1 - age_group7    -290.5 3.10 3601 -93.724  <.0001
 age_group1 - age_group8    -310.9 3.40 3601 -91.422  <.0001
 age_group1 - age_group9    -331.0 3.99 3601 -82.868  <.0001
 age_group1 - age_group10   -348.8 4.96 3601 -70.293  <.0001
 age_group2 - age_group3     -62.4 2.24 3601 -27.901  <.0001
 age_group2 - age_group4    -118.7 2.29 3601 -51.820  <.0001
 age_group2 - age_group5    -161.1 2.43 3601 -66.279  <.0001
 age_group2 - age_group6    -194.0 2.57 3601 -75.407  <.0001
 age_group2 - age_group7    -219.8 2.82 3601 -77.821  <.0001
 age_group2 - age_group8    -240.2 3.15 3601 -76.252  <.0001
 age_group2 - age_group9    -260.3 3.78 3601 -68.825  <.0001
 age_group2 - age_group10   -278.1 4.80 3601 -57.976  <.0001
 age_group3 - age_group4     -56.3 2.25 3601 -25.043  <.0001
 age_group3 - age_group5     -98.8 2.39 3601 -41.359  <.0001
 age_group3 - age_group6    -131.7 2.53 3601 -52.043  <.0001
 age_group3 - age_group7    -157.4 2.78 3601 -56.556  <.0001
 age_group3 - age_group8    -177.9 3.11 3601 -57.142  <.0001
 age_group3 - age_group9    -198.0 3.75 3601 -52.797  <.0001
 age_group3 - age_group10   -215.8 4.77 3601 -45.209  <.0001
 age_group4 - age_group5     -42.4 2.44 3601 -17.380  <.0001
 age_group4 - age_group6     -75.3 2.58 3601 -29.203  <.0001
 age_group4 - age_group7    -101.1 2.83 3601 -35.733  <.0001
 age_group4 - age_group8    -121.5 3.15 3601 -38.545  <.0001
 age_group4 - age_group9    -141.6 3.78 3601 -37.434  <.0001
 age_group4 - age_group10   -159.4 4.80 3601 -33.218  <.0001
 age_group5 - age_group6     -32.9 2.70 3601 -12.208  <.0001
 age_group5 - age_group7     -58.7 2.93 3601 -19.988  <.0001
 age_group5 - age_group8     -79.1 3.25 3601 -24.361  <.0001
 age_group5 - age_group9     -99.2 3.86 3601 -25.691  <.0001
 age_group5 - age_group10   -117.0 4.86 3601 -24.063  <.0001
 age_group6 - age_group7     -25.7 3.05 3601  -8.444  <.0001
 age_group6 - age_group8     -46.2 3.35 3601 -13.791  <.0001
 age_group6 - age_group9     -66.3 3.95 3601 -16.793  <.0001
 age_group6 - age_group10    -84.1 4.93 3601 -17.050  <.0001
 age_group7 - age_group8     -20.5 3.54 3601  -5.773  <.0001
 age_group7 - age_group9     -40.5 4.11 3601  -9.861  <.0001
 age_group7 - age_group10    -58.3 5.06 3601 -11.523  <.0001
 age_group8 - age_group9     -20.1 4.34 3601  -4.630  0.0002
 age_group8 - age_group10    -37.9 5.25 3601  -7.216  <.0001
 age_group9 - age_group10    -17.8 5.65 3601  -3.150  0.0618

P value adjustment: tukey method for comparing a family of 11 estimates 
test(pairs(micdol.emm, by = "begin_date_year"), by = NULL, adjust = "mvt")
 contrast                 begin_date_year estimate   SE   df t.ratio p.value
 age_group0 - age_group1             1993    -53.4 6.24 3601  -8.556  <.0001
 age_group0 - age_group2             1993   -124.1 6.13 3601 -20.229  <.0001
 age_group0 - age_group3             1993   -186.4 6.14 3601 -30.385  <.0001
 age_group0 - age_group4             1993   -242.8 6.15 3601 -39.448  <.0001
 age_group0 - age_group5             1993   -285.2 6.22 3601 -45.862  <.0001
 age_group0 - age_group6             1993   -318.1 6.28 3601 -50.657  <.0001
 age_group0 - age_group7             1993   -343.8 6.39 3601 -53.815  <.0001
 age_group0 - age_group8             1993   -364.3 6.54 3601 -55.690  <.0001
 age_group0 - age_group9             1993   -384.4 6.87 3601 -55.927  <.0001
 age_group0 - age_group10            1993   -402.2 7.47 3601 -53.817  <.0001
 age_group1 - age_group2             1993    -70.7 2.59 3601 -27.324  <.0001
 age_group1 - age_group3             1993   -133.1 2.57 3601 -51.875  <.0001
 age_group1 - age_group4             1993   -189.4 2.61 3601 -72.476  <.0001
 age_group1 - age_group5             1993   -231.8 2.74 3601 -84.527  <.0001
 age_group1 - age_group6             1993   -264.7 2.87 3601 -92.172  <.0001
 age_group1 - age_group7             1993   -290.5 3.10 3601 -93.724  <.0001
 age_group1 - age_group8             1993   -310.9 3.40 3601 -91.422  <.0001
 age_group1 - age_group9             1993   -331.0 3.99 3601 -82.868  <.0001
 age_group1 - age_group10            1993   -348.8 4.96 3601 -70.293  <.0001
 age_group2 - age_group3             1993    -62.4 2.24 3601 -27.901  <.0001
 age_group2 - age_group4             1993   -118.7 2.29 3601 -51.820  <.0001
 age_group2 - age_group5             1993   -161.1 2.43 3601 -66.279  <.0001
 age_group2 - age_group6             1993   -194.0 2.57 3601 -75.407  <.0001
 age_group2 - age_group7             1993   -219.8 2.82 3601 -77.821  <.0001
 age_group2 - age_group8             1993   -240.2 3.15 3601 -76.252  <.0001
 age_group2 - age_group9             1993   -260.3 3.78 3601 -68.825  <.0001
 age_group2 - age_group10            1993   -278.1 4.80 3601 -57.976  <.0001
 age_group3 - age_group4             1993    -56.3 2.25 3601 -25.043  <.0001
 age_group3 - age_group5             1993    -98.8 2.39 3601 -41.359  <.0001
 age_group3 - age_group6             1993   -131.7 2.53 3601 -52.043  <.0001
 age_group3 - age_group7             1993   -157.4 2.78 3601 -56.556  <.0001
 age_group3 - age_group8             1993   -177.9 3.11 3601 -57.142  <.0001
 age_group3 - age_group9             1993   -198.0 3.75 3601 -52.797  <.0001
 age_group3 - age_group10            1993   -215.8 4.77 3601 -45.209  <.0001
 age_group4 - age_group5             1993    -42.4 2.44 3601 -17.380  <.0001
 age_group4 - age_group6             1993    -75.3 2.58 3601 -29.203  <.0001
 age_group4 - age_group7             1993   -101.1 2.83 3601 -35.733  <.0001
 age_group4 - age_group8             1993   -121.5 3.15 3601 -38.545  <.0001
 age_group4 - age_group9             1993   -141.6 3.78 3601 -37.434  <.0001
 age_group4 - age_group10            1993   -159.4 4.80 3601 -33.218  <.0001
 age_group5 - age_group6             1993    -32.9 2.70 3601 -12.208  <.0001
 age_group5 - age_group7             1993    -58.7 2.93 3601 -19.988  <.0001
 age_group5 - age_group8             1993    -79.1 3.25 3601 -24.361  <.0001
 age_group5 - age_group9             1993    -99.2 3.86 3601 -25.691  <.0001
 age_group5 - age_group10            1993   -117.0 4.86 3601 -24.063  <.0001
 age_group6 - age_group7             1993    -25.7 3.05 3601  -8.444  <.0001
 age_group6 - age_group8             1993    -46.2 3.35 3601 -13.791  <.0001
 age_group6 - age_group9             1993    -66.3 3.95 3601 -16.793  <.0001
 age_group6 - age_group10            1993    -84.1 4.93 3601 -17.050  <.0001
 age_group7 - age_group8             1993    -20.5 3.54 3601  -5.773  <.0001
 age_group7 - age_group9             1993    -40.5 4.11 3601  -9.861  <.0001
 age_group7 - age_group10            1993    -58.3 5.06 3601 -11.523  <.0001
 age_group8 - age_group9             1993    -20.1 4.34 3601  -4.630  0.0001
 age_group8 - age_group10            1993    -37.9 5.25 3601  -7.216  <.0001
 age_group9 - age_group10            1993    -17.8 5.65 3601  -3.150  0.0525

P value adjustment: mvt method for 55 tests 
#export tables
# #interpret(eta_squared(micdol.lm), rules = "cohen1992") %>%
#   write.csv(file = "Outputs/Tables/micdol_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
micdol.slopes <- emtrends(micdol.lm, ~age_group, var = "begin_date_year")
# Compare estimated slopes to 0
micdol.slope.contrasts <- test(micdol.slopes) %>% 
  mutate(Species = "Smallmouth Bass") %>% 
  rename(Age = age_group)

micdol.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/micdol_emmeans.csv")

Plot raw data

(micdol.length.year.plot <- ggplot(data = micdol %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)
`geom_smooth()` using formula = 'y ~ x'

Marginal Effects

result <- predict_response(micdol.lm, c("begin_date_year", "age_group"))

# plot(result)
# test_predictions(result) %>% 
#   write.csv(file = "Outputs/Tables/micdol_pairwise_length_time_slopes.csv", row.names = F)

(micdol.marginal.plot <- ggpredict(micdol.lm, terms = c("begin_date_year", "age_group")) %>%  
    plot()+
    #stat_poly_eq(use_label("eq"))+
    stat_regline_equation()+
    stat_poly_line()+
    # annotate(geom = "text", label = "y = 77 + 0.07x", x = 2000, y = 224)+
    # annotate(geom = "text", label = "y = 21 + 0.093x", x = 2000, y = 212)+
    # annotate(geom = "text", label = "y = -64 + 0.13x", x = 2000, y = 199)+
    # annotate(geom = "text", label = "y = 230 - 0.028x", x = 2000, y = 182)+
    # annotate(geom = "text", label = "y = 610 - 0.23x", x = 2000, y = 160)+
    # annotate(geom = "text", label = "y = 920 - 0.39x", x = 2000, y = 137)+
    # annotate(geom = "text", label = "y = 1200 - 0.55x", x = 2000, y = 110)+
    # annotate(geom = "text", label = "y = 1700 - 0.83x", x = 2000, y = 80)+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(title = NULL,
         y = "Mean Length-at-Age (mm)",
         x = "Year")+
    guides(fill = guide_legend(title = "Age", reverse = T), color = guide_legend(title = "Age", reverse = T))+
    theme_bw()
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/micdol_marginal_effects_plot.tiff", 
       micdol.marginal.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

Walleye

Model

#filter data for only Black Crappie, Pomooxis nigromaculatus 
sanvit <- all.grow.merge %>% filter(species == "walleye") %>% 
  filter(age_group %in% c(0:12), #match age groups in BRTs
         !is.na(age_group), !is.na(begin_date_year), !is.na(length_mean_mm),
         !is.na(log_max_depth), !is.na(logarea))

#linear model
sanvit.lm <- lm(length_mean_mm ~ begin_date_year*age_group + log_max_depth + logarea + doy, data = sanvit)
summary(sanvit.lm)

Call:
lm(formula = length_mean_mm ~ begin_date_year * age_group + log_max_depth + 
    logarea + doy, data = sanvit)

Residuals:
     Min       1Q   Median       3Q      Max 
-224.917  -34.739   -2.713   33.363  286.702 

Coefficients:
                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                  1.445e+03  1.142e+03   1.265   0.2059    
begin_date_year             -6.604e-01  5.744e-01  -1.150   0.2503    
age_group1                   4.367e+02  1.219e+03   0.358   0.7202    
age_group2                  -6.522e+02  1.202e+03  -0.542   0.5875    
age_group3                  -1.191e+03  1.196e+03  -0.996   0.3194    
age_group4                  -1.409e+03  1.200e+03  -1.175   0.2401    
age_group5                  -1.237e+03  1.200e+03  -1.031   0.3025    
age_group6                  -1.724e+03  1.204e+03  -1.432   0.1522    
age_group7                  -1.101e+03  1.208e+03  -0.911   0.3624    
age_group8                  -2.895e+02  1.221e+03  -0.237   0.8126    
age_group9                   1.985e+02  1.247e+03   0.159   0.8736    
age_group10                  1.479e+03  1.270e+03   1.165   0.2442    
age_group11                  1.714e+02  1.371e+03   0.125   0.9006    
age_group12                  1.348e+03  1.493e+03   0.903   0.3667    
log_max_depth                1.026e+01  1.349e+00   7.609 3.41e-14 ***
logarea                     -4.011e+00  6.119e-01  -6.555 6.28e-11 ***
doy                          1.769e-01  1.628e-02  10.862  < 2e-16 ***
begin_date_year:age_group1  -1.842e-01  6.131e-01  -0.301   0.7638    
begin_date_year:age_group2   4.063e-01  6.045e-01   0.672   0.5015    
begin_date_year:age_group3   7.070e-01  6.013e-01   1.176   0.2398    
begin_date_year:age_group4   8.420e-01  6.031e-01   1.396   0.1628    
begin_date_year:age_group5   7.757e-01  6.034e-01   1.286   0.1987    
begin_date_year:age_group6   1.039e+00  6.054e-01   1.716   0.0862 .  
begin_date_year:age_group7   7.396e-01  6.076e-01   1.217   0.2235    
begin_date_year:age_group8   3.445e-01  6.137e-01   0.561   0.5746    
begin_date_year:age_group9   1.072e-01  6.268e-01   0.171   0.8642    
begin_date_year:age_group10 -5.249e-01  6.380e-01  -0.823   0.4107    
begin_date_year:age_group11  1.328e-01  6.887e-01   0.193   0.8471    
begin_date_year:age_group12 -4.456e-01  7.488e-01  -0.595   0.5518    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 56.45 on 4073 degrees of freedom
  (96 observations deleted due to missingness)
Multiple R-squared:  0.8082,    Adjusted R-squared:  0.8069 
F-statistic:   613 on 28 and 4073 DF,  p-value: < 2.2e-16
#calculate and interpret effect sizes
eta_squared(sanvit.lm)
          begin_date_year                 age_group             log_max_depth                   logarea 
              0.001469746               0.793872670               0.002148514               0.002735030 
                      doy begin_date_year:age_group 
              0.005694827               0.002298081 
#interpret(eta_squared(sanvit.lm), rules = "cohen1992")

#calculate AIC score
AIC(sanvit.lm)
[1] 44762.16
#examine model fit
testDispersion(sanvit.lm)

    DHARMa nonparametric dispersion test via sd of residuals fitted vs. simulated

data:  simulationOutput
dispersion = 0.99355, p-value = 0.728
alternative hypothesis: two.sided

simulation.output <- simulateResiduals(fittedModel = sanvit.lm)

residuals(sanvit.lm)
           1            2            3            4            5            6            7            8            9 
  35.5651827   15.7537501   -5.3113197    9.5139431   33.0375147   47.2878614  -19.5198264   -4.9959905  111.4970924 
          10           11           12           13           14           15           16           17           18 
  32.1970787    3.7595074   45.1352164  -20.9610030   38.7233092    4.0802143   55.9066430    1.0871326  112.2064448 
          19           20           21           22           23           24           25           26           27 
 103.8702807   28.5245321   58.3293074   41.5836222  -23.9688012  -37.7625707  -47.1151127   27.8778862  100.3199588 
          28           29           30           31           32           33           34           35           36 
  63.9894858   80.5079588   58.0838065   75.0299180   11.5001558   -1.9851534   79.6189588   47.2053822   58.0838065 
          37           38           39           40           41           42           43           44           45 
   8.1094858  -55.7800820  -81.2098442  101.8439588   29.4253822   53.8913177  -17.2905142  -41.1335664 -150.9460014 
          46           47           48           49           50           51           52           53           54 
-224.9168892    4.0144055  -97.3585547  -17.5886962    1.7480260   55.8919645  -36.7591849  -49.6242145   39.4408151 
          55           56           57           58           59           60           61           62           63 
  31.1269645   25.3057855   19.1208151   29.9664955  -39.0382528   41.9986690   55.4887809   24.2700147   40.7800147 
          64           65           66           67           68           69           70           71           72 
 -16.3731158  116.7558171  -11.4132108   -0.5509365  -45.8717667 -101.7623982  -98.0315501 -103.3000266 -108.1123982 
          73           74           75           76           77           78           79           80           81 
  44.8030222   59.5563189   66.3449055   48.9515407   10.5743111   20.4358252   35.4684083  -19.2039589  -14.4901806 
          82           83           84           85           86           87           88           89           90 
  32.2194125   76.8915407   32.7993111   22.7684083   29.9027078  -18.7236988   67.5795028   52.7615407    7.3993111 
          91           92           93           94           95           96           97           98           99 
  11.7574918   -7.6948732   81.9715407 -104.3606889   14.2963012   49.7435091   -6.1212356   60.1405486   67.5235091 
         100          101          102          103          104          105          106          107          108 
  62.6805486   73.8735091   -3.6109599  -33.2145689  101.9884013   92.2985704   24.1672542  -26.4709599  -13.3692335 
         109          110          111          112          113          114          115          116          117 
 -35.3312356   92.2985704  -21.8359002  -54.3812356   52.5205486   72.6035091   34.3272542   -8.0559599  -11.6759002 
         118          119          120          121          122          123          124          125          126 
 -24.3245689   74.3088866   20.3524516   23.3736665  -21.4073926  -13.2200815  -54.7473895   33.3781024  -32.5725400 
         127          128          129          130          131          132          133          134          135 
  30.3426768   22.9762573  -24.3532071  -14.7039383   34.7076405   14.9113434   94.2992739  -50.3326173  -50.3344767 
         136          137          138          139          140          141          142          143          144 
 -90.3496936 -117.5483155    4.3603606   14.2235513  -53.0016573  -96.1039172   98.1393460   95.6488725    9.6143911 
         145          146          147          148          149          150          151          152          153 
 111.5201278   -0.9780854   23.0352361   93.5632634  -10.3630492  -16.2265604  122.0788321   36.6872338   25.1969508 
         154          155          156          157          158          159          160          161          162 
 -11.7174708  -23.7625108   92.5672338  118.6453357   91.2369508  108.2334396  -13.8314932  -53.1341446   63.5357923 
         163          164          165          166          167          168          169          170          171 
  75.3680189   11.8680189  110.0184028   66.7809847   -0.8368368  174.9259717   97.1415384   33.7050726   -8.6337012 
         172          173          174          175          176          177          178          179          180 
  22.1607676   58.0815415   67.3894344   27.2522428  133.3164681  -11.6840514  142.6191402  131.5348969  -37.3563195 
         181          182          183          184          185          186          187          188          189 
   2.1438764  125.2166380  -42.4205883   -4.9755362    9.3230231  -70.1931477   41.6645460  -16.8225200   87.2894627 
         190          191          192          193          194          195          196          197          198 
  90.7781819   40.0346227   15.2463142    5.7879188   66.0379942   54.8657487   32.2377583  -17.7069789   83.6494498 
         199          200          201          202          203          204          205          206          207 
  56.4110544   55.7011297   67.3888843  123.4449394   69.7461567   78.3925854  143.5880750   16.2584325   47.4400372 
         208          209          210          211          212          213          214          215          216 
  74.6701125  -35.3483281  -85.8848218 -158.8068848  -44.0811589   37.1090206  -65.4747920  -52.6503760  -91.7236355 
         217          218          219          220          221          222          223          224          225 
-114.6714885  -14.2603990  -51.2811486  -20.8911784    6.3563946  -21.6512159    0.9150151   -2.9936580   29.8667677 
         226          227          228          229          230          231          232          233          234 
  51.6045830   76.3337987   -7.7078661  -10.9677629  -51.0820784   50.7349251  -34.1847075   45.1091283  -75.7794496 
         235          236          237          238          239          240          241          242          243 
 -37.8557045   11.8360813    3.7711411    6.9454425  -21.3457045  -56.3002522  -11.1857045  -10.1988589   32.1858057 
         244          245          246          247          248          249          250          251          252 
  28.5354425 -107.1002522  -64.9626276   18.3754425   68.3858648   -7.2576861   27.3921233   85.0345267   41.4475796 
         253          254          255          256          257          258          259          260          261 
  49.0539551   -2.8139253    2.5449603  -22.1703179    1.6616197   14.0802769   68.0431120   21.2744424   10.2439155 
         262          263          264          265          266          267          268          269          270 
  54.2944424    2.0031120   46.6744424  252.0776990   55.5433464    3.7807053  -40.7311266   42.8433464   82.3730917 
         271          272          273          274          275          276          277          278          279 
 -36.4463268   44.3261293    5.9639389  -20.8730716  -62.1881303  -72.1941616  -62.0961579  -58.9319192  -13.0309998 
         280          281          282          283          284          285          286          287          288 
 -82.8526127 -117.8602437   11.6072485  -33.3125031   -4.0155136  -52.8870723  -92.0592666   22.8512387   32.8343742 
         289          290          291          292          293          294          295          296          297 
  58.2246010   25.4075891   19.8987379  -36.8040686  -25.8185958   17.0818492   54.7459222    4.6716800   31.2646513 
         298          299          300          301          302          303          304          305          306 
  42.0541334   43.7740577    7.0348155   50.0557512   28.2547100    0.1789356  -25.6205375  133.1787077   -9.5126919 
         307          308          309          310          311          312          313          314          315 
   1.7451701    5.0181921  127.1007236   -1.6120228  156.0420929   60.4517432   81.3428919   65.5783239   85.8517432 
         316          317          318          319          320          321          322          323          324 
 -50.6219378   22.5867116  -24.6462906    6.4858616  -19.3654889   23.5715088  -10.9719286   40.4195943   11.5658616 
         325          326          327          328          329          330          331          332          333 
  66.9945111   45.1615088   37.8865635   48.6256018  -35.4126533   30.5235805   55.0569797   65.8205681   37.9535385 
         334          335          336          337          338          339          340          341          342 
  -4.6712495   79.0473881  110.5364137   13.7722564   65.8529436   57.9427014   17.8693513   -3.0943272   31.7217699 
         343          344          345          346          347          348          349          350          351 
  39.6806817   67.7774593   33.8597807  103.3277592   67.5101113   83.5939055    7.3939055   28.2241609  -40.4398887 
         352          353          354          355          356          357          358          359          360 
 -20.7334671  -52.5826657  -11.7974954  -73.7370414  -87.4657086   15.5668901   67.0638440   52.7835042   75.4839299 
         361          362          363          364          365          366          367          368          369 
  -0.7427250    1.0196784   52.9815549   -1.9927736  -25.5898880   54.5683108  -35.0651661  -13.0784127  -28.2678155 
         370          371          372          373          374          375          376          377          378 
  32.8567641   55.3698470 -106.6208551  123.7245096   69.7924600   43.5058525   78.7642542   13.9159092   83.7676627 
         379          380          381          382          383          384          385          386          387 
  47.7926913   57.5298017  -58.4792426  -45.0451996    1.5670748  -32.5981937  -35.6665290  -53.4236882  -11.1472826 
         388          389          390          391          392          393          394          395          396 
  48.5306411   56.2570192   37.4358641  -15.6000189   29.4905527   79.4358447   94.0321661  -15.9317367  122.9847521 
         397          398          399          400          401          402          403          404          405 
   6.7940999   31.7384533  144.7013873  -91.9699633   56.8003678   -4.6612442   68.9196040  -49.3788725  -79.8137195 
         406          407          408          409          410          411          412          413          414 
 -55.6837195  -17.5276382  -28.1008561 -108.6882886  -34.0270790   84.1249256  -12.2258561  -36.2982886   66.5979196 
         415          416          417          418          419          420          421          422          423 
  15.4923618  -33.4348561  -14.7082886  -35.9320790   -5.2561233   68.8849256    7.8071348   81.8776899  -30.7577387 
         424          425          426          427          428          429          430          431          432 
  31.1973264   60.0678620   -4.4070471   31.8287974  -19.5552904   -8.5555344   56.8470201   37.0923978   -2.9235707 
         433          434          435          436          437          438          439          440          441 
  -8.1995980   16.1267393   47.0837603    8.7667546  -39.6061497   48.9419647   48.8307656   57.4580124  104.7665480 
         442          443          444          445          446          447          448          449          450 
  74.2450915   38.6569736   15.3450637    0.4001546  -17.7623342   95.6291673   21.5795995   54.7436403  -42.7390009 
         451          452          453          454          455          456          457          458          459 
 -11.9540887   95.6291673  -20.8957782    6.4550637   44.8909991   35.9210420    3.3355392  -16.6046045  -32.3630212 
         460          461          462          463          464          465          466          467          468 
  26.8496134    9.4839799   25.5605392   40.2731499    0.1420153  -30.9401499  -14.3441317   70.9948179    4.1085950 
         469          470          471          472          473          474          475          476          477 
  40.4995507  -25.6074653  -25.3268053    7.3719501   -5.9270138    5.9449022   44.3416427   69.9683934    1.6720230 
         478          479          480          481          482          483          484          485          486 
 -20.4821362  -26.2157013   42.1942356 -110.7655450  -78.6024285    2.0783940   22.1012792   83.7502447  145.6472744 
         487          488          489          490          491          492          493          494          495 
 -38.3163217  119.7096751   60.4517651  132.2137987   29.5774920   58.3321339  -94.7877629   39.1686846   -0.5235252 
         496          497          498          499          500          501          502          503          504 
 -12.4048758   54.3162150    6.3491874   20.1186846   52.8164748   15.5351242   31.4562150   28.5263406   38.4359475 
         505          506          507          508          509          510          511          512          513 
  14.4737940   49.8659475   54.8618979   43.7663406   65.2737940  -18.0145909  -25.3817522   46.6687834   19.5754500 
         514          515          516          517          518          519          520          521          522 
  40.6138743   30.1873600   25.0787834   21.2802408  -16.5532448  -41.9124003    5.3413544  -27.3545334    6.5669810 
         523          524          525          526          527          528          529          530          531 
  47.2478255   18.3427377   14.4810481   87.4364258    4.0713544   36.7518900   21.8478255  -13.7740064   16.7713544 
         532          533          534          535          536          537          538          539          540 
 -26.7195334    6.6078255   47.5010481    6.9616566   35.8770646   60.4099098   59.4423343   11.3875279   93.4299098 
         541          542          543          544          545          546          547          548          549 
  56.0556676   89.6423176   54.0736390   70.7876676   38.8423176   30.5786390   91.9680712   36.9246305   13.2884597 
         550          551          552          553          554          555          556          557          558 
  51.3280712   42.9217931   -1.4305132    9.9324207   12.2582516   15.4745375   33.9939266  -32.9583030  -78.5492058 
         559          560          561          562          563          564          565          566          567 
  14.5786870  -19.2877947  -46.4381113  -97.9485045  -46.0668442  -11.7260734  -10.0983030   -4.0477947  -56.2268442 
         568          569          570          571          572          573          574          575          576 
  14.9439266  -19.4116363 -153.1181113    8.5939266  -34.2283030  -68.3892058 -115.4415730   13.6739266   -5.0183030 
         577          578          579          580          581          582          583          584          585 
  -9.5458725  -74.5899063  -69.2413130  -93.3711280  -65.7421113  -86.5185045 -116.4199286 -133.6968442   -9.1058207 
         586          587          588          589          590          591          592          593          594 
   5.6305932   -2.7323030   17.7972110  -37.2164786  -71.9229063  -48.6390907  -34.8906518  -76.0714447  -22.3835045 
         595          596          597          598          599          600          601          602          603 
 -59.2699286  -96.0201775  -26.7374881   -1.0336339   21.8161492  -51.7374727  -38.8086279   -1.0336339  -18.8238508 
         604          605          606          607          608          609          610          611          612 
 -65.7074727  -28.3445109  -28.9717745   -1.0438508   -9.5986279  115.5921033  -25.5603627   -7.2490251   -8.7887361 
         613          614          615          616          617          618          619          620          621 
  -1.4506932   27.0409749   60.0452639   79.8293068  -25.5603627   27.4643082   42.9002639  -15.1767193   27.3878038 
         622          623          624          625          626          627          628          629          630 
  12.5490017    8.2031704   26.1199124  -48.7996113  -61.9000095   31.4518038   28.2448991   40.7998371  -54.9023331 
         631          632          633          634          635          636          637          638          639 
 -33.1362779   20.0218038    0.7282325    1.9899124  -40.6298448   -2.0450479   67.8075625  -36.3692278  -36.4442104 
         640          641          642          643          644          645          646          647          648 
 -58.5085556  -73.9532892  -68.8197918  -26.3168800   -9.5752534   52.2358794   36.4510217   64.9769537   70.6243432 
         649          650          651          652          653          654          655          656          657 
  84.3005742  -14.7221113    0.9495839   -3.4378486  -29.1066390   86.7583596  -13.5513099  -17.2621113   15.3429172 
         658          659          660          661          662          663          664          665          666 
  -3.7553486  -24.9493608  -13.4201623    4.4991240   35.7817421   43.1894008   35.1244427   67.8724734  -11.2967240 
         667          668          669          670          671          672          673          674          675 
 -21.4711931   31.4238667    4.5935312  -11.0596846    1.3888069   -0.7494667   40.7885312  -25.0918319  -32.7651391 
         676          677          678          679          680          681          682          683          684 
   1.3888069   -6.6761333  -60.6518319  -73.2865764  -58.5865882  -32.2103571  -71.4673636   -4.3169379   24.1942108 
         685          686          687          688          689          690          691          692          693 
 -37.3549604  116.7987615   25.8127225   14.9583697  -70.2890609  148.2554350   58.5152734   18.4254318   93.4449323 
         694          695          696          697          698          699          700          701          702 
  50.9896706   56.5008996   39.7827225   30.8647052    9.8783697   -5.4399090  120.3154350   62.0712734   32.9183729 
         703          704          705          706          707          708          709          710          711 
  31.2149323   25.8127225   60.6783697   98.9012734    9.4233729   45.6082656   36.7887615   29.6897885   68.9927225 
         712          713          714          715          716          717          718          719          720 
  37.4263719   18.4573780   14.4038067    0.7120780   57.5754867   -4.1644842  -24.5407037    9.7436086   19.2954486 
         721          722          723          724          725          726          727          728          729 
  18.4573780  -12.2661933  -18.3277803  -10.0649967  -27.6579965  -26.0613003  -91.1303224  -64.2685899    5.0921299 
         730          731          732          733          734          735          736          737          738 
  29.9646356  -13.0456656   90.2098476  -25.4615148   29.5165471  -26.5568090  -66.9872950  -96.2777118  -42.1534123 
         739          740          741          742          743          744          745          746          747 
 -48.0219616  -39.5552950   23.9436993  -39.5552950   57.0260869   74.1219517   10.0360869  -58.6366388  -51.8176977 
         748          749          750          751          752          753          754          755          756 
  26.3155397   -4.6471354  -11.9527404   -8.9017734    9.9259374   -6.3158213  -23.1621554  -41.6473255   -0.3544603 
         757          758          759          760          761          762          763          764          765 
  -2.9538021  -31.0027404   -0.9007734  -21.9791546  -75.2321554  -70.8573255   18.2722064  -30.8938021    0.7472596 
         766          767          768          769          770          771          772          773          774 
 -20.7091546  -32.0521554  -73.3973255   70.7355021   -8.3924480   12.3455397  -67.0361476  -65.7104590   -2.1358638 
         775          776          777          778          779          780          781          782          783 
 -32.4276067  -49.5949701  -34.7383291  -18.5403761   -7.5380132  -37.2815328  -20.9912405   -4.6537841  -45.0386040 
         784          785          786          787          788          789          790          791          792 
 -64.6847737  -33.1457799  -18.2541194  -24.1125119  -34.2248076  -11.8593712  -17.7574502  -21.1819371   50.4717005 
         793          794          795          796          797          798          799          800          801 
  -7.5742738   -3.1914229  -17.4634424  -68.7641172  -60.9842237 -105.5324665  -70.9347789  -24.4805555 -160.3057846 
         802          803          804          805          806          807          808          809          810 
 -42.3086889   13.2194255  -51.1477818  -64.5833293  -31.5386819  -70.9040251  -10.6832730  -14.1419752  109.8777505 
         811          812          813          814          815          816          817          818          819 
 -15.1581810   39.7165062   22.6622640    2.0622473   35.2852354   21.3097174   -6.7336675  -24.5980890  -31.6119752 
         820          821          822          823          824          825          826          827          828 
 -87.0736072  -75.1634528 -112.9723845    4.0613325    3.3618709   64.1808852   66.0214236   87.4027664  -10.9143311 
         829          830          831          832          833          834          835          836          837 
   2.1298817  -71.3214860  -36.4949629  -46.6884691  -37.6163574  -25.7612705   49.0695309   -9.6763574   11.7037295 
         838          839          840          841          842          843          844          845          846 
 104.1638284   33.9324352   26.3124352    8.1032377  -43.1604565  -43.8011760  -62.9624525  -82.0348602  -66.0691024 
         847          848          849          850          851          852          853          854          855 
 -14.7597509   99.6516729   63.6397630   18.6790318    1.9659440   45.8179055   52.3892359  -69.6488473  -99.4330063 
         856          857          858          859          860          861          862          863          864 
 -91.0250623   48.0789815    3.9383227   22.8120678   72.5335780  -13.4124799   92.9410900   15.5243449   14.2794148 
         865          866          867          868          869          870          871          872          873 
   0.8354764   11.2524435    7.2624876  -25.3199378  -31.3289386  -24.6681086  -22.5212810   29.1607689   11.6304764 
         874          875          876          877          878          879          880          881          882 
  17.6024435    4.7224876  -24.6426044   20.0358914   10.4987190   18.1487566   14.2794148   -3.6095236    4.9024435 
         883          884          885          886          887          888          889          890          891 
  27.5824876   -7.2859378    1.6910614  -23.1441086  -49.1912810    4.1194148   26.4471431  -16.6492434   -8.5512810 
         892          893          894          895          896          897          898          899          900 
 -19.5231494  -71.0080303  -81.1535613  -53.3898161    4.4274782  -58.8912083  -38.9964828   15.5425450  -28.3745693 
         901          902          903          904          905          906          907          908          909 
 -12.9863706  -78.4898475  -32.3730941  -39.3625490  -60.5619518  -36.0550029  -41.6664598  -66.5322412  -20.0174550 
         910          911          912          913          914          915          916          917          918 
 -40.8491369  -62.0295693  -26.5330372  -21.3398475  -50.4455746  -48.2180513  -17.5263846  -35.0622145  -23.3908816 
         919          920          921          922          923          924          925          926          927 
  -9.2582829   -3.6108934   -3.3273897  -11.8350022  -11.5712431  -10.3306073  -67.1900161  -32.5488691   -7.2489950 
         928          929          930          931          932          933          934          935          936 
  32.0924284   27.3075193   14.2250305   78.4532760   -7.5350802  -53.1130358  -24.6884473    8.4692631  -29.8094607 
         937          938          939          940          941          942          943          944          945 
   5.5755342   19.4465165   -5.5555230  -41.4785426  -54.7472143  -68.7388212  -73.7392677  -18.7156308   27.2586744 
         946          947          948          949          950          951          952          953          954 
 -32.8605230  -19.0667779   -1.5898181  -14.3018944  -19.5587588   20.4561527  -17.1956232   20.2315886  -40.2324877 
         955          956          957          958          959          960          961          962          963 
 -29.6247091    0.5289436   12.4879195   14.2334937  -39.0796751  -48.6658693  -86.5202849  -26.8499998   -9.7752300 
         964          965          966          967          968          969          970          971          972 
 -69.5543457  -56.1032705  -23.8708928   33.6457844   31.9238745    0.9331433   15.7866487  -44.7179035  -23.2454849 
         973          974          975          976          977          978          979          980          981 
 -98.2542458  -91.4288201 -111.4663078 -107.3331843 -120.5738563  -97.8426714  -48.6328025  286.7019697  112.7119697 
         982          983          984          985          986          987          988          989          990 
 111.4419697  -49.6892163  -36.9910757  -36.9910757   34.1187074   16.8684188    8.5459303   60.1580473  -18.1530478 
         991          992          993          994          995          996          997          998          999 
  21.3794838  -18.0077266  -29.0306928   45.0696246   67.9704691   41.6053813   44.6590695   47.1693072  -65.2952136 
        1000 
  -7.8501227 
 [ reached 'max' / getOption("max.print") -- omitted 3102 entries ]
residuals(sanvit.lm, quantileFunction = qnorm)
           1            2            3            4            5            6            7            8            9 
  35.5651827   15.7537501   -5.3113197    9.5139431   33.0375147   47.2878614  -19.5198264   -4.9959905  111.4970924 
          10           11           12           13           14           15           16           17           18 
  32.1970787    3.7595074   45.1352164  -20.9610030   38.7233092    4.0802143   55.9066430    1.0871326  112.2064448 
          19           20           21           22           23           24           25           26           27 
 103.8702807   28.5245321   58.3293074   41.5836222  -23.9688012  -37.7625707  -47.1151127   27.8778862  100.3199588 
          28           29           30           31           32           33           34           35           36 
  63.9894858   80.5079588   58.0838065   75.0299180   11.5001558   -1.9851534   79.6189588   47.2053822   58.0838065 
          37           38           39           40           41           42           43           44           45 
   8.1094858  -55.7800820  -81.2098442  101.8439588   29.4253822   53.8913177  -17.2905142  -41.1335664 -150.9460014 
          46           47           48           49           50           51           52           53           54 
-224.9168892    4.0144055  -97.3585547  -17.5886962    1.7480260   55.8919645  -36.7591849  -49.6242145   39.4408151 
          55           56           57           58           59           60           61           62           63 
  31.1269645   25.3057855   19.1208151   29.9664955  -39.0382528   41.9986690   55.4887809   24.2700147   40.7800147 
          64           65           66           67           68           69           70           71           72 
 -16.3731158  116.7558171  -11.4132108   -0.5509365  -45.8717667 -101.7623982  -98.0315501 -103.3000266 -108.1123982 
          73           74           75           76           77           78           79           80           81 
  44.8030222   59.5563189   66.3449055   48.9515407   10.5743111   20.4358252   35.4684083  -19.2039589  -14.4901806 
          82           83           84           85           86           87           88           89           90 
  32.2194125   76.8915407   32.7993111   22.7684083   29.9027078  -18.7236988   67.5795028   52.7615407    7.3993111 
          91           92           93           94           95           96           97           98           99 
  11.7574918   -7.6948732   81.9715407 -104.3606889   14.2963012   49.7435091   -6.1212356   60.1405486   67.5235091 
         100          101          102          103          104          105          106          107          108 
  62.6805486   73.8735091   -3.6109599  -33.2145689  101.9884013   92.2985704   24.1672542  -26.4709599  -13.3692335 
         109          110          111          112          113          114          115          116          117 
 -35.3312356   92.2985704  -21.8359002  -54.3812356   52.5205486   72.6035091   34.3272542   -8.0559599  -11.6759002 
         118          119          120          121          122          123          124          125          126 
 -24.3245689   74.3088866   20.3524516   23.3736665  -21.4073926  -13.2200815  -54.7473895   33.3781024  -32.5725400 
         127          128          129          130          131          132          133          134          135 
  30.3426768   22.9762573  -24.3532071  -14.7039383   34.7076405   14.9113434   94.2992739  -50.3326173  -50.3344767 
         136          137          138          139          140          141          142          143          144 
 -90.3496936 -117.5483155    4.3603606   14.2235513  -53.0016573  -96.1039172   98.1393460   95.6488725    9.6143911 
         145          146          147          148          149          150          151          152          153 
 111.5201278   -0.9780854   23.0352361   93.5632634  -10.3630492  -16.2265604  122.0788321   36.6872338   25.1969508 
         154          155          156          157          158          159          160          161          162 
 -11.7174708  -23.7625108   92.5672338  118.6453357   91.2369508  108.2334396  -13.8314932  -53.1341446   63.5357923 
         163          164          165          166          167          168          169          170          171 
  75.3680189   11.8680189  110.0184028   66.7809847   -0.8368368  174.9259717   97.1415384   33.7050726   -8.6337012 
         172          173          174          175          176          177          178          179          180 
  22.1607676   58.0815415   67.3894344   27.2522428  133.3164681  -11.6840514  142.6191402  131.5348969  -37.3563195 
         181          182          183          184          185          186          187          188          189 
   2.1438764  125.2166380  -42.4205883   -4.9755362    9.3230231  -70.1931477   41.6645460  -16.8225200   87.2894627 
         190          191          192          193          194          195          196          197          198 
  90.7781819   40.0346227   15.2463142    5.7879188   66.0379942   54.8657487   32.2377583  -17.7069789   83.6494498 
         199          200          201          202          203          204          205          206          207 
  56.4110544   55.7011297   67.3888843  123.4449394   69.7461567   78.3925854  143.5880750   16.2584325   47.4400372 
         208          209          210          211          212          213          214          215          216 
  74.6701125  -35.3483281  -85.8848218 -158.8068848  -44.0811589   37.1090206  -65.4747920  -52.6503760  -91.7236355 
         217          218          219          220          221          222          223          224          225 
-114.6714885  -14.2603990  -51.2811486  -20.8911784    6.3563946  -21.6512159    0.9150151   -2.9936580   29.8667677 
         226          227          228          229          230          231          232          233          234 
  51.6045830   76.3337987   -7.7078661  -10.9677629  -51.0820784   50.7349251  -34.1847075   45.1091283  -75.7794496 
         235          236          237          238          239          240          241          242          243 
 -37.8557045   11.8360813    3.7711411    6.9454425  -21.3457045  -56.3002522  -11.1857045  -10.1988589   32.1858057 
         244          245          246          247          248          249          250          251          252 
  28.5354425 -107.1002522  -64.9626276   18.3754425   68.3858648   -7.2576861   27.3921233   85.0345267   41.4475796 
         253          254          255          256          257          258          259          260          261 
  49.0539551   -2.8139253    2.5449603  -22.1703179    1.6616197   14.0802769   68.0431120   21.2744424   10.2439155 
         262          263          264          265          266          267          268          269          270 
  54.2944424    2.0031120   46.6744424  252.0776990   55.5433464    3.7807053  -40.7311266   42.8433464   82.3730917 
         271          272          273          274          275          276          277          278          279 
 -36.4463268   44.3261293    5.9639389  -20.8730716  -62.1881303  -72.1941616  -62.0961579  -58.9319192  -13.0309998 
         280          281          282          283          284          285          286          287          288 
 -82.8526127 -117.8602437   11.6072485  -33.3125031   -4.0155136  -52.8870723  -92.0592666   22.8512387   32.8343742 
         289          290          291          292          293          294          295          296          297 
  58.2246010   25.4075891   19.8987379  -36.8040686  -25.8185958   17.0818492   54.7459222    4.6716800   31.2646513 
         298          299          300          301          302          303          304          305          306 
  42.0541334   43.7740577    7.0348155   50.0557512   28.2547100    0.1789356  -25.6205375  133.1787077   -9.5126919 
         307          308          309          310          311          312          313          314          315 
   1.7451701    5.0181921  127.1007236   -1.6120228  156.0420929   60.4517432   81.3428919   65.5783239   85.8517432 
         316          317          318          319          320          321          322          323          324 
 -50.6219378   22.5867116  -24.6462906    6.4858616  -19.3654889   23.5715088  -10.9719286   40.4195943   11.5658616 
         325          326          327          328          329          330          331          332          333 
  66.9945111   45.1615088   37.8865635   48.6256018  -35.4126533   30.5235805   55.0569797   65.8205681   37.9535385 
         334          335          336          337          338          339          340          341          342 
  -4.6712495   79.0473881  110.5364137   13.7722564   65.8529436   57.9427014   17.8693513   -3.0943272   31.7217699 
         343          344          345          346          347          348          349          350          351 
  39.6806817   67.7774593   33.8597807  103.3277592   67.5101113   83.5939055    7.3939055   28.2241609  -40.4398887 
         352          353          354          355          356          357          358          359          360 
 -20.7334671  -52.5826657  -11.7974954  -73.7370414  -87.4657086   15.5668901   67.0638440   52.7835042   75.4839299 
         361          362          363          364          365          366          367          368          369 
  -0.7427250    1.0196784   52.9815549   -1.9927736  -25.5898880   54.5683108  -35.0651661  -13.0784127  -28.2678155 
         370          371          372          373          374          375          376          377          378 
  32.8567641   55.3698470 -106.6208551  123.7245096   69.7924600   43.5058525   78.7642542   13.9159092   83.7676627 
         379          380          381          382          383          384          385          386          387 
  47.7926913   57.5298017  -58.4792426  -45.0451996    1.5670748  -32.5981937  -35.6665290  -53.4236882  -11.1472826 
         388          389          390          391          392          393          394          395          396 
  48.5306411   56.2570192   37.4358641  -15.6000189   29.4905527   79.4358447   94.0321661  -15.9317367  122.9847521 
         397          398          399          400          401          402          403          404          405 
   6.7940999   31.7384533  144.7013873  -91.9699633   56.8003678   -4.6612442   68.9196040  -49.3788725  -79.8137195 
         406          407          408          409          410          411          412          413          414 
 -55.6837195  -17.5276382  -28.1008561 -108.6882886  -34.0270790   84.1249256  -12.2258561  -36.2982886   66.5979196 
         415          416          417          418          419          420          421          422          423 
  15.4923618  -33.4348561  -14.7082886  -35.9320790   -5.2561233   68.8849256    7.8071348   81.8776899  -30.7577387 
         424          425          426          427          428          429          430          431          432 
  31.1973264   60.0678620   -4.4070471   31.8287974  -19.5552904   -8.5555344   56.8470201   37.0923978   -2.9235707 
         433          434          435          436          437          438          439          440          441 
  -8.1995980   16.1267393   47.0837603    8.7667546  -39.6061497   48.9419647   48.8307656   57.4580124  104.7665480 
         442          443          444          445          446          447          448          449          450 
  74.2450915   38.6569736   15.3450637    0.4001546  -17.7623342   95.6291673   21.5795995   54.7436403  -42.7390009 
         451          452          453          454          455          456          457          458          459 
 -11.9540887   95.6291673  -20.8957782    6.4550637   44.8909991   35.9210420    3.3355392  -16.6046045  -32.3630212 
         460          461          462          463          464          465          466          467          468 
  26.8496134    9.4839799   25.5605392   40.2731499    0.1420153  -30.9401499  -14.3441317   70.9948179    4.1085950 
         469          470          471          472          473          474          475          476          477 
  40.4995507  -25.6074653  -25.3268053    7.3719501   -5.9270138    5.9449022   44.3416427   69.9683934    1.6720230 
         478          479          480          481          482          483          484          485          486 
 -20.4821362  -26.2157013   42.1942356 -110.7655450  -78.6024285    2.0783940   22.1012792   83.7502447  145.6472744 
         487          488          489          490          491          492          493          494          495 
 -38.3163217  119.7096751   60.4517651  132.2137987   29.5774920   58.3321339  -94.7877629   39.1686846   -0.5235252 
         496          497          498          499          500          501          502          503          504 
 -12.4048758   54.3162150    6.3491874   20.1186846   52.8164748   15.5351242   31.4562150   28.5263406   38.4359475 
         505          506          507          508          509          510          511          512          513 
  14.4737940   49.8659475   54.8618979   43.7663406   65.2737940  -18.0145909  -25.3817522   46.6687834   19.5754500 
         514          515          516          517          518          519          520          521          522 
  40.6138743   30.1873600   25.0787834   21.2802408  -16.5532448  -41.9124003    5.3413544  -27.3545334    6.5669810 
         523          524          525          526          527          528          529          530          531 
  47.2478255   18.3427377   14.4810481   87.4364258    4.0713544   36.7518900   21.8478255  -13.7740064   16.7713544 
         532          533          534          535          536          537          538          539          540 
 -26.7195334    6.6078255   47.5010481    6.9616566   35.8770646   60.4099098   59.4423343   11.3875279   93.4299098 
         541          542          543          544          545          546          547          548          549 
  56.0556676   89.6423176   54.0736390   70.7876676   38.8423176   30.5786390   91.9680712   36.9246305   13.2884597 
         550          551          552          553          554          555          556          557          558 
  51.3280712   42.9217931   -1.4305132    9.9324207   12.2582516   15.4745375   33.9939266  -32.9583030  -78.5492058 
         559          560          561          562          563          564          565          566          567 
  14.5786870  -19.2877947  -46.4381113  -97.9485045  -46.0668442  -11.7260734  -10.0983030   -4.0477947  -56.2268442 
         568          569          570          571          572          573          574          575          576 
  14.9439266  -19.4116363 -153.1181113    8.5939266  -34.2283030  -68.3892058 -115.4415730   13.6739266   -5.0183030 
         577          578          579          580          581          582          583          584          585 
  -9.5458725  -74.5899063  -69.2413130  -93.3711280  -65.7421113  -86.5185045 -116.4199286 -133.6968442   -9.1058207 
         586          587          588          589          590          591          592          593          594 
   5.6305932   -2.7323030   17.7972110  -37.2164786  -71.9229063  -48.6390907  -34.8906518  -76.0714447  -22.3835045 
         595          596          597          598          599          600          601          602          603 
 -59.2699286  -96.0201775  -26.7374881   -1.0336339   21.8161492  -51.7374727  -38.8086279   -1.0336339  -18.8238508 
         604          605          606          607          608          609          610          611          612 
 -65.7074727  -28.3445109  -28.9717745   -1.0438508   -9.5986279  115.5921033  -25.5603627   -7.2490251   -8.7887361 
         613          614          615          616          617          618          619          620          621 
  -1.4506932   27.0409749   60.0452639   79.8293068  -25.5603627   27.4643082   42.9002639  -15.1767193   27.3878038 
         622          623          624          625          626          627          628          629          630 
  12.5490017    8.2031704   26.1199124  -48.7996113  -61.9000095   31.4518038   28.2448991   40.7998371  -54.9023331 
         631          632          633          634          635          636          637          638          639 
 -33.1362779   20.0218038    0.7282325    1.9899124  -40.6298448   -2.0450479   67.8075625  -36.3692278  -36.4442104 
         640          641          642          643          644          645          646          647          648 
 -58.5085556  -73.9532892  -68.8197918  -26.3168800   -9.5752534   52.2358794   36.4510217   64.9769537   70.6243432 
         649          650          651          652          653          654          655          656          657 
  84.3005742  -14.7221113    0.9495839   -3.4378486  -29.1066390   86.7583596  -13.5513099  -17.2621113   15.3429172 
         658          659          660          661          662          663          664          665          666 
  -3.7553486  -24.9493608  -13.4201623    4.4991240   35.7817421   43.1894008   35.1244427   67.8724734  -11.2967240 
         667          668          669          670          671          672          673          674          675 
 -21.4711931   31.4238667    4.5935312  -11.0596846    1.3888069   -0.7494667   40.7885312  -25.0918319  -32.7651391 
         676          677          678          679          680          681          682          683          684 
   1.3888069   -6.6761333  -60.6518319  -73.2865764  -58.5865882  -32.2103571  -71.4673636   -4.3169379   24.1942108 
         685          686          687          688          689          690          691          692          693 
 -37.3549604  116.7987615   25.8127225   14.9583697  -70.2890609  148.2554350   58.5152734   18.4254318   93.4449323 
         694          695          696          697          698          699          700          701          702 
  50.9896706   56.5008996   39.7827225   30.8647052    9.8783697   -5.4399090  120.3154350   62.0712734   32.9183729 
         703          704          705          706          707          708          709          710          711 
  31.2149323   25.8127225   60.6783697   98.9012734    9.4233729   45.6082656   36.7887615   29.6897885   68.9927225 
         712          713          714          715          716          717          718          719          720 
  37.4263719   18.4573780   14.4038067    0.7120780   57.5754867   -4.1644842  -24.5407037    9.7436086   19.2954486 
         721          722          723          724          725          726          727          728          729 
  18.4573780  -12.2661933  -18.3277803  -10.0649967  -27.6579965  -26.0613003  -91.1303224  -64.2685899    5.0921299 
         730          731          732          733          734          735          736          737          738 
  29.9646356  -13.0456656   90.2098476  -25.4615148   29.5165471  -26.5568090  -66.9872950  -96.2777118  -42.1534123 
         739          740          741          742          743          744          745          746          747 
 -48.0219616  -39.5552950   23.9436993  -39.5552950   57.0260869   74.1219517   10.0360869  -58.6366388  -51.8176977 
         748          749          750          751          752          753          754          755          756 
  26.3155397   -4.6471354  -11.9527404   -8.9017734    9.9259374   -6.3158213  -23.1621554  -41.6473255   -0.3544603 
         757          758          759          760          761          762          763          764          765 
  -2.9538021  -31.0027404   -0.9007734  -21.9791546  -75.2321554  -70.8573255   18.2722064  -30.8938021    0.7472596 
         766          767          768          769          770          771          772          773          774 
 -20.7091546  -32.0521554  -73.3973255   70.7355021   -8.3924480   12.3455397  -67.0361476  -65.7104590   -2.1358638 
         775          776          777          778          779          780          781          782          783 
 -32.4276067  -49.5949701  -34.7383291  -18.5403761   -7.5380132  -37.2815328  -20.9912405   -4.6537841  -45.0386040 
         784          785          786          787          788          789          790          791          792 
 -64.6847737  -33.1457799  -18.2541194  -24.1125119  -34.2248076  -11.8593712  -17.7574502  -21.1819371   50.4717005 
         793          794          795          796          797          798          799          800          801 
  -7.5742738   -3.1914229  -17.4634424  -68.7641172  -60.9842237 -105.5324665  -70.9347789  -24.4805555 -160.3057846 
         802          803          804          805          806          807          808          809          810 
 -42.3086889   13.2194255  -51.1477818  -64.5833293  -31.5386819  -70.9040251  -10.6832730  -14.1419752  109.8777505 
         811          812          813          814          815          816          817          818          819 
 -15.1581810   39.7165062   22.6622640    2.0622473   35.2852354   21.3097174   -6.7336675  -24.5980890  -31.6119752 
         820          821          822          823          824          825          826          827          828 
 -87.0736072  -75.1634528 -112.9723845    4.0613325    3.3618709   64.1808852   66.0214236   87.4027664  -10.9143311 
         829          830          831          832          833          834          835          836          837 
   2.1298817  -71.3214860  -36.4949629  -46.6884691  -37.6163574  -25.7612705   49.0695309   -9.6763574   11.7037295 
         838          839          840          841          842          843          844          845          846 
 104.1638284   33.9324352   26.3124352    8.1032377  -43.1604565  -43.8011760  -62.9624525  -82.0348602  -66.0691024 
         847          848          849          850          851          852          853          854          855 
 -14.7597509   99.6516729   63.6397630   18.6790318    1.9659440   45.8179055   52.3892359  -69.6488473  -99.4330063 
         856          857          858          859          860          861          862          863          864 
 -91.0250623   48.0789815    3.9383227   22.8120678   72.5335780  -13.4124799   92.9410900   15.5243449   14.2794148 
         865          866          867          868          869          870          871          872          873 
   0.8354764   11.2524435    7.2624876  -25.3199378  -31.3289386  -24.6681086  -22.5212810   29.1607689   11.6304764 
         874          875          876          877          878          879          880          881          882 
  17.6024435    4.7224876  -24.6426044   20.0358914   10.4987190   18.1487566   14.2794148   -3.6095236    4.9024435 
         883          884          885          886          887          888          889          890          891 
  27.5824876   -7.2859378    1.6910614  -23.1441086  -49.1912810    4.1194148   26.4471431  -16.6492434   -8.5512810 
         892          893          894          895          896          897          898          899          900 
 -19.5231494  -71.0080303  -81.1535613  -53.3898161    4.4274782  -58.8912083  -38.9964828   15.5425450  -28.3745693 
         901          902          903          904          905          906          907          908          909 
 -12.9863706  -78.4898475  -32.3730941  -39.3625490  -60.5619518  -36.0550029  -41.6664598  -66.5322412  -20.0174550 
         910          911          912          913          914          915          916          917          918 
 -40.8491369  -62.0295693  -26.5330372  -21.3398475  -50.4455746  -48.2180513  -17.5263846  -35.0622145  -23.3908816 
         919          920          921          922          923          924          925          926          927 
  -9.2582829   -3.6108934   -3.3273897  -11.8350022  -11.5712431  -10.3306073  -67.1900161  -32.5488691   -7.2489950 
         928          929          930          931          932          933          934          935          936 
  32.0924284   27.3075193   14.2250305   78.4532760   -7.5350802  -53.1130358  -24.6884473    8.4692631  -29.8094607 
         937          938          939          940          941          942          943          944          945 
   5.5755342   19.4465165   -5.5555230  -41.4785426  -54.7472143  -68.7388212  -73.7392677  -18.7156308   27.2586744 
         946          947          948          949          950          951          952          953          954 
 -32.8605230  -19.0667779   -1.5898181  -14.3018944  -19.5587588   20.4561527  -17.1956232   20.2315886  -40.2324877 
         955          956          957          958          959          960          961          962          963 
 -29.6247091    0.5289436   12.4879195   14.2334937  -39.0796751  -48.6658693  -86.5202849  -26.8499998   -9.7752300 
         964          965          966          967          968          969          970          971          972 
 -69.5543457  -56.1032705  -23.8708928   33.6457844   31.9238745    0.9331433   15.7866487  -44.7179035  -23.2454849 
         973          974          975          976          977          978          979          980          981 
 -98.2542458  -91.4288201 -111.4663078 -107.3331843 -120.5738563  -97.8426714  -48.6328025  286.7019697  112.7119697 
         982          983          984          985          986          987          988          989          990 
 111.4419697  -49.6892163  -36.9910757  -36.9910757   34.1187074   16.8684188    8.5459303   60.1580473  -18.1530478 
         991          992          993          994          995          996          997          998          999 
  21.3794838  -18.0077266  -29.0306928   45.0696246   67.9704691   41.6053813   44.6590695   47.1693072  -65.2952136 
        1000 
  -7.8501227 
 [ reached 'max' / getOption("max.print") -- omitted 3102 entries ]
plot(sanvit.lm)

Post-hoc comparisons

sanvit.emm <- emmeans(sanvit.lm, ~ begin_date_year*age_group)
pairs(sanvit.emm, simple = "age_group")
begin_date_year = 1992:
 contrast                  estimate   SE   df t.ratio p.value
 age_group0 - age_group1     -69.69 6.05 4073 -11.516  <.0001
 age_group0 - age_group2    -157.28 5.92 4073 -26.585  <.0001
 age_group0 - age_group3    -217.54 5.86 4073 -37.098  <.0001
 age_group0 - age_group4    -268.04 5.91 4073 -45.357  <.0001
 age_group0 - age_group5    -307.90 6.01 4073 -51.272  <.0001
 age_group0 - age_group6    -345.39 6.06 4073 -57.038  <.0001
 age_group0 - age_group7    -372.75 6.16 4073 -60.477  <.0001
 age_group0 - age_group8    -396.84 6.34 4073 -62.566  <.0001
 age_group0 - age_group9    -412.03 6.73 4073 -61.237  <.0001
 age_group0 - age_group10   -432.90 6.93 4073 -62.442  <.0001
 age_group0 - age_group11   -435.93 8.15 4073 -53.463  <.0001
 age_group0 - age_group12   -459.93 9.43 4073 -48.749  <.0001
 age_group1 - age_group2     -87.59 3.97 4073 -22.068  <.0001
 age_group1 - age_group3    -147.85 3.86 4073 -38.305  <.0001
 age_group1 - age_group4    -198.35 3.92 4073 -50.655  <.0001
 age_group1 - age_group5    -238.21 4.03 4073 -59.072  <.0001
 age_group1 - age_group6    -275.70 4.10 4073 -67.221  <.0001
 age_group1 - age_group7    -303.06 4.26 4073 -71.155  <.0001
 age_group1 - age_group8    -327.15 4.50 4073 -72.766  <.0001
 age_group1 - age_group9    -342.34 5.01 4073 -68.378  <.0001
 age_group1 - age_group10   -363.21 5.29 4073 -68.617  <.0001
 age_group1 - age_group11   -366.25 6.81 4073 -53.763  <.0001
 age_group1 - age_group12   -390.25 8.30 4073 -47.011  <.0001
 age_group2 - age_group3     -60.26 3.56 4073 -16.914  <.0001
 age_group2 - age_group4    -110.76 3.62 4073 -30.596  <.0001
 age_group2 - age_group5    -150.62 3.74 4073 -40.278  <.0001
 age_group2 - age_group6    -188.11 3.81 4073 -49.334  <.0001
 age_group2 - age_group7    -215.47 3.98 4073 -54.119  <.0001
 age_group2 - age_group8    -239.56 4.23 4073 -56.632  <.0001
 age_group2 - age_group9    -254.75 4.76 4073 -53.470  <.0001
 age_group2 - age_group10   -275.62 5.07 4073 -54.382  <.0001
 age_group2 - age_group11   -278.65 6.64 4073 -41.977  <.0001
 age_group2 - age_group12   -302.65 8.16 4073 -37.092  <.0001
 age_group3 - age_group4     -50.50 3.49 4073 -14.487  <.0001
 age_group3 - age_group5     -90.36 3.61 4073 -25.061  <.0001
 age_group3 - age_group6    -127.85 3.68 4073 -34.727  <.0001
 age_group3 - age_group7    -155.21 3.86 4073 -40.259  <.0001
 age_group3 - age_group8    -179.30 4.11 4073 -43.633  <.0001
 age_group3 - age_group9    -194.49 4.65 4073 -41.788  <.0001
 age_group3 - age_group10   -215.36 4.97 4073 -43.364  <.0001
 age_group3 - age_group11   -218.40 6.56 4073 -33.285  <.0001
 age_group3 - age_group12   -242.40 8.10 4073 -29.938  <.0001
 age_group4 - age_group5     -39.86 3.66 4073 -10.892  <.0001
 age_group4 - age_group6     -77.35 3.73 4073 -20.719  <.0001
 age_group4 - age_group7    -104.71 3.91 4073 -26.814  <.0001
 age_group4 - age_group8    -128.79 4.15 4073 -30.998  <.0001
 age_group4 - age_group9    -143.98 4.69 4073 -30.670  <.0001
 age_group4 - age_group10   -164.86 5.01 4073 -32.933  <.0001
 age_group4 - age_group11   -167.89 6.59 4073 -25.480  <.0001
 age_group4 - age_group12   -191.89 8.12 4073 -23.631  <.0001
 age_group5 - age_group6     -37.49 3.84 4073  -9.760  <.0001
 age_group5 - age_group7     -64.85 4.01 4073 -16.184  <.0001
 age_group5 - age_group8     -88.94 4.25 4073 -20.929  <.0001
 age_group5 - age_group9    -104.13 4.77 4073 -21.807  <.0001
 age_group5 - age_group10   -125.00 5.08 4073 -24.596  <.0001
 age_group5 - age_group11   -128.03 6.65 4073 -19.256  <.0001
 age_group5 - age_group12   -152.03 8.17 4073 -18.613  <.0001
 age_group6 - age_group7     -27.36 4.07 4073  -6.715  <.0001
 age_group6 - age_group8     -51.45 4.31 4073 -11.932  <.0001
 age_group6 - age_group9     -66.64 4.83 4073 -13.793  <.0001
 age_group6 - age_group10    -87.51 5.14 4073 -17.039  <.0001
 age_group6 - age_group11    -90.55 6.69 4073 -13.536  <.0001
 age_group6 - age_group12   -114.55 8.20 4073 -13.969  <.0001
 age_group7 - age_group8     -24.09 4.46 4073  -5.398  <.0001
 age_group7 - age_group9     -39.28 4.96 4073  -7.911  <.0001
 age_group7 - age_group10    -60.15 5.26 4073 -11.433  <.0001
 age_group7 - age_group11    -63.18 6.79 4073  -9.310  <.0001
 age_group7 - age_group12    -87.18 8.28 4073 -10.529  <.0001
 age_group8 - age_group9     -15.19 5.16 4073  -2.945  0.1424
 age_group8 - age_group10    -36.06 5.45 4073  -6.623  <.0001
 age_group8 - age_group11    -39.10 6.93 4073  -5.641  <.0001
 age_group8 - age_group12    -63.10 8.40 4073  -7.514  <.0001
 age_group9 - age_group10    -20.87 5.86 4073  -3.562  0.0223
 age_group9 - age_group11    -23.91 7.26 4073  -3.291  0.0537
 age_group9 - age_group12    -47.91 8.67 4073  -5.523  <.0001
 age_group10 - age_group11    -3.03 7.47 4073  -0.406  1.0000
 age_group10 - age_group12   -27.03 8.85 4073  -3.055  0.1064
 age_group11 - age_group12   -24.00 9.83 4073  -2.441  0.4153

P value adjustment: tukey method for comparing a family of 13 estimates 
test(pairs(sanvit.emm, by = "begin_date_year"), by = NULL, adjust = "mvt")
 contrast                  begin_date_year estimate   SE   df t.ratio p.value
 age_group0 - age_group1              1992   -69.69 6.05 4073 -11.516  <.0001
 age_group0 - age_group2              1992  -157.28 5.92 4073 -26.585  <.0001
 age_group0 - age_group3              1992  -217.54 5.86 4073 -37.098  <.0001
 age_group0 - age_group4              1992  -268.04 5.91 4073 -45.357  <.0001
 age_group0 - age_group5              1992  -307.90 6.01 4073 -51.272  <.0001
 age_group0 - age_group6              1992  -345.39 6.06 4073 -57.038  <.0001
 age_group0 - age_group7              1992  -372.75 6.16 4073 -60.477  <.0001
 age_group0 - age_group8              1992  -396.84 6.34 4073 -62.566  <.0001
 age_group0 - age_group9              1992  -412.03 6.73 4073 -61.237  <.0001
 age_group0 - age_group10             1992  -432.90 6.93 4073 -62.442  <.0001
 age_group0 - age_group11             1992  -435.93 8.15 4073 -53.463  <.0001
 age_group0 - age_group12             1992  -459.93 9.43 4073 -48.749  <.0001
 age_group1 - age_group2              1992   -87.59 3.97 4073 -22.068  <.0001
 age_group1 - age_group3              1992  -147.85 3.86 4073 -38.305  <.0001
 age_group1 - age_group4              1992  -198.35 3.92 4073 -50.655  <.0001
 age_group1 - age_group5              1992  -238.21 4.03 4073 -59.072  <.0001
 age_group1 - age_group6              1992  -275.70 4.10 4073 -67.221  <.0001
 age_group1 - age_group7              1992  -303.06 4.26 4073 -71.155  <.0001
 age_group1 - age_group8              1992  -327.15 4.50 4073 -72.766  <.0001
 age_group1 - age_group9              1992  -342.34 5.01 4073 -68.378  <.0001
 age_group1 - age_group10             1992  -363.21 5.29 4073 -68.617  <.0001
 age_group1 - age_group11             1992  -366.25 6.81 4073 -53.763  <.0001
 age_group1 - age_group12             1992  -390.25 8.30 4073 -47.011  <.0001
 age_group2 - age_group3              1992   -60.26 3.56 4073 -16.914  <.0001
 age_group2 - age_group4              1992  -110.76 3.62 4073 -30.596  <.0001
 age_group2 - age_group5              1992  -150.62 3.74 4073 -40.278  <.0001
 age_group2 - age_group6              1992  -188.11 3.81 4073 -49.334  <.0001
 age_group2 - age_group7              1992  -215.47 3.98 4073 -54.119  <.0001
 age_group2 - age_group8              1992  -239.56 4.23 4073 -56.632  <.0001
 age_group2 - age_group9              1992  -254.75 4.76 4073 -53.470  <.0001
 age_group2 - age_group10             1992  -275.62 5.07 4073 -54.382  <.0001
 age_group2 - age_group11             1992  -278.65 6.64 4073 -41.977  <.0001
 age_group2 - age_group12             1992  -302.65 8.16 4073 -37.092  <.0001
 age_group3 - age_group4              1992   -50.50 3.49 4073 -14.487  <.0001
 age_group3 - age_group5              1992   -90.36 3.61 4073 -25.061  <.0001
 age_group3 - age_group6              1992  -127.85 3.68 4073 -34.727  <.0001
 age_group3 - age_group7              1992  -155.21 3.86 4073 -40.259  <.0001
 age_group3 - age_group8              1992  -179.30 4.11 4073 -43.633  <.0001
 age_group3 - age_group9              1992  -194.49 4.65 4073 -41.788  <.0001
 age_group3 - age_group10             1992  -215.36 4.97 4073 -43.364  <.0001
 age_group3 - age_group11             1992  -218.40 6.56 4073 -33.285  <.0001
 age_group3 - age_group12             1992  -242.40 8.10 4073 -29.938  <.0001
 age_group4 - age_group5              1992   -39.86 3.66 4073 -10.892  <.0001
 age_group4 - age_group6              1992   -77.35 3.73 4073 -20.719  <.0001
 age_group4 - age_group7              1992  -104.71 3.91 4073 -26.814  <.0001
 age_group4 - age_group8              1992  -128.79 4.15 4073 -30.998  <.0001
 age_group4 - age_group9              1992  -143.98 4.69 4073 -30.670  <.0001
 age_group4 - age_group10             1992  -164.86 5.01 4073 -32.933  <.0001
 age_group4 - age_group11             1992  -167.89 6.59 4073 -25.480  <.0001
 age_group4 - age_group12             1992  -191.89 8.12 4073 -23.631  <.0001
 age_group5 - age_group6              1992   -37.49 3.84 4073  -9.760  <.0001
 age_group5 - age_group7              1992   -64.85 4.01 4073 -16.184  <.0001
 age_group5 - age_group8              1992   -88.94 4.25 4073 -20.929  <.0001
 age_group5 - age_group9              1992  -104.13 4.77 4073 -21.807  <.0001
 age_group5 - age_group10             1992  -125.00 5.08 4073 -24.596  <.0001
 age_group5 - age_group11             1992  -128.03 6.65 4073 -19.256  <.0001
 age_group5 - age_group12             1992  -152.03 8.17 4073 -18.613  <.0001
 age_group6 - age_group7              1992   -27.36 4.07 4073  -6.715  <.0001
 age_group6 - age_group8              1992   -51.45 4.31 4073 -11.932  <.0001
 age_group6 - age_group9              1992   -66.64 4.83 4073 -13.793  <.0001
 age_group6 - age_group10             1992   -87.51 5.14 4073 -17.039  <.0001
 age_group6 - age_group11             1992   -90.55 6.69 4073 -13.536  <.0001
 age_group6 - age_group12             1992  -114.55 8.20 4073 -13.969  <.0001
 age_group7 - age_group8              1992   -24.09 4.46 4073  -5.398  <.0001
 age_group7 - age_group9              1992   -39.28 4.96 4073  -7.911  <.0001
 age_group7 - age_group10             1992   -60.15 5.26 4073 -11.433  <.0001
 age_group7 - age_group11             1992   -63.18 6.79 4073  -9.310  <.0001
 age_group7 - age_group12             1992   -87.18 8.28 4073 -10.529  <.0001
 age_group8 - age_group9              1992   -15.19 5.16 4073  -2.945  0.1265
 age_group8 - age_group10             1992   -36.06 5.45 4073  -6.623  <.0001
 age_group8 - age_group11             1992   -39.10 6.93 4073  -5.641  <.0001
 age_group8 - age_group12             1992   -63.10 8.40 4073  -7.514  <.0001
 age_group9 - age_group10             1992   -20.87 5.86 4073  -3.562  0.0191
 age_group9 - age_group11             1992   -23.91 7.26 4073  -3.291  0.0473
 age_group9 - age_group12             1992   -47.91 8.67 4073  -5.523  <.0001
 age_group10 - age_group11            1992    -3.03 7.47 4073  -0.406  1.0000
 age_group10 - age_group12            1992   -27.03 8.85 4073  -3.055  0.0950
 age_group11 - age_group12            1992   -24.00 9.83 4073  -2.441  0.3871

P value adjustment: mvt method for 78 tests 
#export tables
# #interpret(eta_squared(sanvit.lm), rules = "cohen1992") %>%
#   write.csv(file = "Outputs/Tables/sanvit_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
sanvit.slopes <- emtrends(sanvit.lm, ~age_group, var = "begin_date_year")
# Compare estimated slopes to 0
sanvit.slope.contrasts <- test(sanvit.slopes) %>% 
  mutate(Species = "Walleye") %>% 
  rename(Age = age_group)

sanvit.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/sanvit_emmeans.csv")

Plot raw data

(sanvit.length.year.plot <- ggplot(data = sanvit %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)
`geom_smooth()` using formula = 'y ~ x'

Marginal Effects

result <- predict_response(sanvit.lm, c("begin_date_year", "age_group"))

# plot(result)
# test_predictions(result) %>% 
#   write.csv(file = "Outputs/Tables/sanvit_pairwise_length_time_slopes.csv", row.names = F)

(sanvit.marginal.plot <- ggpredict(sanvit.lm, terms = c("begin_date_year", "age_group")) %>%  
    plot()+
    #stat_poly_eq(use_label("eq"))+
    stat_regline_equation()+
    stat_poly_line()+
    # annotate(geom = "text", label = "y = 77 + 0.07x", x = 2000, y = 224)+
    # annotate(geom = "text", label = "y = 21 + 0.093x", x = 2000, y = 212)+
    # annotate(geom = "text", label = "y = -64 + 0.13x", x = 2000, y = 199)+
    # annotate(geom = "text", label = "y = 230 - 0.028x", x = 2000, y = 182)+
    # annotate(geom = "text", label = "y = 610 - 0.23x", x = 2000, y = 160)+
    # annotate(geom = "text", label = "y = 920 - 0.39x", x = 2000, y = 137)+
    # annotate(geom = "text", label = "y = 1200 - 0.55x", x = 2000, y = 110)+
    # annotate(geom = "text", label = "y = 1700 - 0.83x", x = 2000, y = 80)+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(title = NULL,
         y = "Mean Length-at-Age (mm)",
         x = "Year")+
    guides(fill = guide_legend(title = "Age", reverse = T), color = guide_legend(title = "Age", reverse = T))+
    theme_bw()
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/sanvit_marginal_effects_plot.tiff", 
       sanvit.marginal.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

Yellow Perch

Model

#filter data for only Black Crappie, Pomooxis nigromaculatus 
perfla <- all.grow.merge %>% filter(species == "yellow_perch") %>% 
  filter(age_group %in% c(0:11), #match age groups in BRTs
         !is.na(age_group), !is.na(begin_date_year), !is.na(length_mean_mm),
         !is.na(log_max_depth), !is.na(logarea))

#linear model
perfla.lm <- lm(length_mean_mm ~ begin_date_year*age_group + log_max_depth + logarea + doy, data = perfla)
summary(perfla.lm)

Call:
lm(formula = length_mean_mm ~ begin_date_year * age_group + log_max_depth + 
    logarea + doy, data = perfla)

Residuals:
     Min       1Q   Median       3Q      Max 
-133.799  -18.629   -1.851   17.320  257.558 

Coefficients:
                              Estimate Std. Error t value Pr(>|t|)    
(Intercept)                  1.094e+03  2.850e+02   3.840 0.000124 ***
begin_date_year             -5.300e-01  1.436e-01  -3.690 0.000226 ***
age_group1                  -1.097e+02  3.069e+02  -0.357 0.720818    
age_group2                  -2.079e+02  2.980e+02  -0.698 0.485462    
age_group3                  -6.049e+02  2.962e+02  -2.042 0.041140 *  
age_group4                  -7.420e+02  2.977e+02  -2.493 0.012698 *  
age_group5                  -5.713e+02  3.012e+02  -1.897 0.057890 .  
age_group6                  -3.893e+02  3.082e+02  -1.263 0.206609    
age_group7                  -5.180e+00  3.257e+02  -0.016 0.987314    
age_group8                  -6.295e+02  3.562e+02  -1.767 0.077239 .  
age_group9                  -6.536e+02  4.080e+02  -1.602 0.109177    
age_group10                 -2.473e+02  5.075e+02  -0.487 0.626005    
age_group11                 -6.450e+02  6.696e+02  -0.963 0.335409    
log_max_depth                2.929e+00  4.529e-01   6.467 1.05e-10 ***
logarea                     -9.262e-01  2.117e-01  -4.375 1.22e-05 ***
doy                          1.424e-01  5.469e-03  26.030  < 2e-16 ***
begin_date_year:age_group1   7.240e-02  1.546e-01   0.468 0.639653    
begin_date_year:age_group2   1.409e-01  1.502e-01   0.938 0.348353    
begin_date_year:age_group3   3.549e-01  1.493e-01   2.378 0.017437 *  
begin_date_year:age_group4   4.367e-01  1.500e-01   2.911 0.003607 ** 
begin_date_year:age_group5   3.637e-01  1.518e-01   2.396 0.016582 *  
begin_date_year:age_group6   2.836e-01  1.553e-01   1.826 0.067824 .  
begin_date_year:age_group7   1.011e-01  1.641e-01   0.616 0.537959    
begin_date_year:age_group8   4.247e-01  1.794e-01   2.368 0.017921 *  
begin_date_year:age_group9   4.451e-01  2.053e-01   2.168 0.030198 *  
begin_date_year:age_group10  2.468e-01  2.552e-01   0.967 0.333493    
begin_date_year:age_group11  4.544e-01  3.365e-01   1.350 0.176993    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 30.03 on 9719 degrees of freedom
  (128 observations deleted due to missingness)
Multiple R-squared:  0.7595,    Adjusted R-squared:  0.7589 
F-statistic:  1181 on 26 and 9719 DF,  p-value: < 2.2e-16
#calculate and interpret effect sizes
eta_squared(perfla.lm)
          begin_date_year                 age_group             log_max_depth                   logarea 
             0.0046698302              0.7346345820              0.0010433333              0.0008060225 
                      doy begin_date_year:age_group 
             0.0170544674              0.0013303507 
#interpret(eta_squared(perfla.lm), rules = "cohen1992")

#calculate AIC score
AIC(perfla.lm)
[1] 94005.44
#examine model fit
testDispersion(perfla.lm)

    DHARMa nonparametric dispersion test via sd of residuals fitted vs. simulated

data:  simulationOutput
dispersion = 0.99729, p-value = 0.816
alternative hypothesis: two.sided

simulation.output <- simulateResiduals(fittedModel = perfla.lm)

residuals(perfla.lm)
          1           2           3           4           5           6           7           8           9          10 
  3.5062776   6.5769668  -2.6388778 -30.7001491 -16.7140331 -41.2079578 -47.9331207 -40.9315647 -29.9907342 -42.2908646 
         11          12          13          14          15          16          17          18          19          20 
-55.8378501  23.9071761  34.2811652  18.2303404  18.5967900   1.1188089  -0.4540159 -33.2563714  21.2964526  34.7096278 
         21          22          23          24          25          26          27          28          29          30 
 -4.4823065 -15.0633174  -6.7301422  14.3373073  42.6365023  30.2012389   6.2478365  -3.0284430  25.4476362   3.6483607 
         31          32          33          34          35          36          37          38          39          40 
 14.3140072  -5.9237625  -4.8318762  -2.9126923   2.1673077  -6.0661188   9.6449513  46.0441025 -33.2786548  33.5581912 
         41          42          43          44          45          46          47          48          49          50 
 -7.8760731 -24.0176201 -14.9922284 -18.0752912 -10.1367734   1.2951799 -17.3267920 -18.2251187 -53.3223849 -16.2116216 
         51          52          53          54          55          56          57          58          59          60 
-20.8222358 -46.2222857  18.5162773 -47.7909592  -7.5077829  -6.0018523   2.4382280  17.3842171  17.4478419  12.6572574 
         61          62          63          64          65          66          67          68          69          70 
-21.6318190  -3.3591635  24.8508760 -44.1734992 -22.4676378 -13.4631131  -3.0891240   2.7040512  44.7265008 -18.0341230 
         71          72          73          74          75          76          77          78          79          80 
 -9.8972639 -35.1752160 -24.5757667   6.3869753  14.0069753   9.7142333  35.3294113  48.5024277  20.8471571  31.1695436 
         81          82          83          84          85          86          87          88          89          90 
-20.0775723  -4.7844765 -32.4728127 -12.9019907 -55.7799286 -32.2264793 -19.2977373 -18.2953013  15.6873782   6.4289864 
         91          92          93          94          95          96          97          98          99         100 
 -0.8728356 -17.5420519 -21.0218038 -18.7427415  -9.9623829  39.4041590  32.0675137  58.5376586  74.1831595 106.3884130 
        101         102         103         104         105         106         107         108         109         110 
 31.9251574  16.9086356  66.9149408  38.5561344  62.0629460  23.7334469  80.7037003  23.8706172  17.5145964  -9.7429410 
        111         112         113         114         115         116         117         118         119         120 
-23.5299440 -12.0952492 -26.1169093   4.8344172   6.6701633 -17.8847204 -13.8452213 -19.1547204  14.9555330  14.9944172 
        121         122         123         124         125         126         127         128         129         130 
 41.6255330 -23.3762209 -16.2105765 -20.3003538  10.8758100 -11.3491900 106.9486941   4.7333214  70.5581434  32.6733214 
        131         132         133         134         135         136         137         138         139         140 
 20.1929969   1.5310639 -17.6580980 -25.3117465   7.4929969  11.9450639  -9.6147647 -17.6917465  20.1929969 -22.9059029 
        141         142         143         144         145         146         147         148         149         150 
-14.5861015 -22.9059029 -16.3744744 -29.8261015 -19.0525017 -52.1776408 -50.0647009  -2.2745122 -13.3232798 -18.1244864 
        151         152         153         154         155         156         157         158         159         160 
-25.9216311 -29.6370050  27.2564015   6.3311041  48.8521292  75.0471358  38.2565364  46.7606527  18.6136808 -20.5963126 
        161         162         163         164         165         166         167         168         169         170 
 -3.2002454  17.6548959 -18.1986689  -2.3749826   8.7287478  26.1352931 -34.9298460  -4.8769061 109.3130658  53.1629544 
        171         172         173         174         175         176         177         178         179         180 
 15.4420194  50.6229544  -9.3328999   5.1724362  68.9890720   9.4180339   9.1351268 -11.6451577 -29.8771607 -10.0865213 
        181         182         183         184         185         186         187         188         189         190 
-19.7171607 -29.4491326 -11.7801440  20.5083022 -19.9095111  12.3912326  25.8104889  46.0048560 -22.7847048 -22.6909155 
        191         192         193         194         195         196         197         198         199         200 
-43.0645420  10.1659777 -13.5501355 -10.7375636   2.5459777 -18.6301355   0.5804273   1.2902612  -9.5190223 -10.6486671 
        201         202         203         204         205         206         207         208         209         210 
  4.5801257   9.3098645  -0.7611433  20.2720319   8.2674774  -2.2376807   8.6697688  -7.4810362  -8.9096329   8.3270607 
        211         212         213         214         215         216         217         218         219         220 
-16.7302312 -13.8344845 -15.5129009 -27.0526373   0.4152046 -19.0303459  19.9849208  41.8840762 -28.8966178  39.7885213 
        221         222         223         224         225         226         227         228         229         230 
 37.7078266  34.1763220  10.3596273  70.2448215  81.5548885 106.3077266  57.2545358  82.5708885  79.6377266  88.0707448 
        231         232         233         234         235         236         237         238         239         240 
 31.1288215  73.2575552  56.7440781  35.3531176  66.6888215  70.7477266 107.5440781  38.2433117  20.0586660  12.8433117 
        241         242         243         244         245         246         247         248         249         250 
 14.7928174  -4.4571835   6.0886660   0.6228165  10.7828165  -1.9171835  -2.8013340  16.8122223  34.1172290  34.1566295 
        251         252         253         254         255         256         257         258         259         260 
 22.6872290  20.1472290  38.2457467   1.4979355 -45.3576457 -26.1145324  -9.4047769 -12.7385903 -29.5868466 -40.8121854 
        261         262         263         264         265         266         267         268         269         270 
-24.2121614 -14.2679745 -24.4279745 -12.3516343  -5.4607870 -17.8377068  -9.6113078 -17.6002798 -27.3772270   5.3766121 
        271         272         273         274         275         276         277         278         279         280 
-42.6172270  -3.1958879 -32.9249079 -42.6172270  44.2371141  29.0112979  43.3416302  26.0708346  27.2996411   7.1783049 
        281         282         283         284         285         286         287         288         289         290 
 21.9967578  27.1756082  57.9312739   8.7834783  16.9972848   4.1572819  -0.1757656  45.6382635  65.5719841  -8.1589119 
        291         292         293         294         295         296         297         298         299         300 
 -5.8090177  10.1445049  34.8309823   8.7986501  -8.4631337  -5.9654694  -8.1589119 -15.4817702 -16.7741902  46.5117211 
        301         302         303         304         305         306         307         308         309         310 
 40.9697810  29.2334866  17.2381561   9.5114586  25.0271303  27.8000855   6.8291023 -17.1819359   2.0247740  41.0834435 
        311         312         313         314         315         316         317         318         319         320 
 60.0267459   2.7128007   1.8646050  69.4435098  48.8121793   0.8151059 -14.2666977  24.7266175  20.2098704 -12.8450489 
        321         322         323         324         325         326         327         328         329         330 
 -9.2349041 -29.9053555  -8.2445843 -16.6539766 -18.3521043 -22.5199234  -8.3808987   7.6714816   4.3278610 -16.4891241 
        331         332         333         334         335         336         337         338         339         340 
 15.0811294   8.7700135 -21.6282286 -39.3274543 -55.2126342  56.8242498  50.0276088  -1.2725003  35.3673939  21.4759165 
        341         342         343         344         345         346         347         348         349         350 
 20.8176088   4.8234997   6.1573939  18.2250616  -1.0749960  -9.1967222  19.5709165  -0.7723912  65.2909165 -35.7250592 
        351         352         353         354         355         356         357         358         359         360 
-75.2297489 -13.3255935   6.6020309   1.3796746  33.9105050 -32.1809667  -6.7667829   8.3255494   1.7227538   6.2954538 
        361         362         363         364         365         366         367         368         369         370 
-13.1121767 -18.4779148 -26.1228502 -40.7330177 -40.2995927  11.1992519 -53.4330177  12.7206927  15.9438283   0.8744662 
        371         372         373         374         375         376         377         378         379         380 
 14.6274350  12.1849237  17.9903191  17.5831017   9.7050104  -1.6750536 -21.0323741  10.4915904  14.1275816  -2.6599213 
        381         382         383         384         385         386         387         388         389         390 
 56.3874121 -20.7412754   0.8660832  -6.9490274  -4.0515302   3.1081973 -26.8574120  -6.2705227 -25.5500218  18.7202317 
        391         392         393         394         395         396         397         398         399         400 
 26.6071210  -9.3621246  18.6562058  15.2346198  24.5500433 -14.5917340 -23.5475702   5.3365852 -11.1855493 -17.6451907 
        401         402         403         404         405         406         407         408         409         410 
-27.0326823 -31.0294709   4.3147072   6.0070527 -31.2415860 -21.5565793   7.7822483  28.1001003 -14.2310850 -17.9680129 
        411         412         413         414         415         416         417         418         419         420 
 23.6684555 -12.9228347  16.4666695  23.5281003  16.0484555   4.8919871  -5.9640830  -4.0229752 -22.2311029 -10.7567553 
        421         422         423         424         425         426         427         428         429         430 
-32.3911029  -4.8300887   6.0848413  14.7276026  -3.6044363  -6.9467553 -27.7818254   2.7899113  45.8781746  23.7666282 
        431         432         433         434         435         436         437         438         439         440 
 26.9154602   0.6847328  36.2586676  22.9199616  11.6754602   5.7786178  16.5699616  16.1204602  10.0869010  28.6386676 
        441         442         443         444         445         446         447         448         449         450 
 17.2086178   7.6799616  12.8899924 -29.9575666 -25.3056943 -42.3005133 -53.7164167 -34.0669887  -0.4395571  16.0667866 
        451         452         453         454         455         456         457         458         459         460 
 12.4422852  24.7588424  -5.7312238  48.0022852   3.4974429  17.6542866  37.0115578 -23.7581999   8.5314403  -7.4245073 
        461         462         463         464         465         466         467         468         469         470 
  3.7514429   8.4467866 -13.0372635  12.2718442  20.3708593  13.5813974  15.6909941 -10.1737176  23.6830285   2.4997061 
        471         472         473         474         475         476         477         478         479         480 
  8.6195936  15.9550717   7.4298882  15.5050080 -15.2135547 -15.2537176  -0.0137176  -2.7329715 -18.8181510 -24.1155585 
        481         482         483         484         485         486         487         488         489         490 
 -4.3145785  -5.1168976  -7.4895785 -15.5943976  -9.8653009 -54.9858729  13.8935492 -12.1885785  -4.1008976 -25.1053009 
        491         492         493         494         495         496         497         498         499         500 
-21.9658729 -46.5534926  -5.3195585  16.4731024 -24.5058729  20.6265487  43.0584210  23.8411019   4.4876986 -23.2762067 
        501         502         503         504         505         506         507         508         509         510 
 25.0138214   5.4261019 -17.7728734  35.8665487  31.6284210  -4.7338981 -34.2828734  11.3194410  38.9145487  15.1184210 
        511         512         513         514         515         516         517         518         519         520 
-19.9458326  -0.6960771   9.6861096  24.8418533  19.3315144  30.2165385   3.7489229  -6.8238904  30.8108533   0.9165144 
        521         522         523         524         525         526         527         528         529         530 
-15.7138904  10.2298477  -7.5421900  -3.0124992  -6.6227437   6.2994429 -54.5331467  75.9365385  35.2710911  32.1031581 
        531         532         533         534         535         536         537         538         539         540 
 30.4399961  -4.5186524  32.5887348  31.5374684  15.6349125  12.4839913  49.5130308  30.5484454  -0.3247165  30.1216350 
        541         542         543         544         545         546         547         548         549         550 
 51.9106745  48.7110618  36.6929427  25.7822930   1.4455504 -26.9252928 -39.6160134  11.9689715  47.8643951   8.7529427 
        551         552         553         554         555         556         557         558         559         560 
 33.8943951   8.7529427  23.4213914 -10.8515376 -19.1289091 -24.1633100 -14.3681195 -16.2112777  -9.6763414 -18.9743099 
        561         562         563         564         565         566         567         568         569         570 
-30.7156404 -27.0123380  -6.5069896 -29.3010480 -39.5574420 -38.9162725   6.0985544  -4.6829574  -6.9266738 -27.1233301 
        571         572         573         574         575         576         577         578         579         580 
 45.0919430  19.9959611   7.9550844  21.2332392 -15.6892847 -20.0368536  -2.3118514   8.5659611 -39.5764193 -58.2873423 
        581         582         583         584         585         586         587         588         589         590 
-18.9000572 -46.2905449 -19.3619972 -14.9216474   1.4024515 -14.2409685 -39.2200572 -13.2705449  18.7380028 -34.0826469 
        591         592         593         594         595         596         597         598         599         600 
 -5.5402152   9.2540315  -8.4860572 -18.3505449  -4.1219972  -6.7080572 -23.4305449  12.3880028  -7.4126469  31.9949581 
        601         602         603         604         605         606         607         608         609         610 
 20.0024727  -3.3325206  -3.4342312  -0.4740029  11.1641661  24.5773413   3.5441661  -2.5159920 -16.7758339 -23.0476587 
        611         612         613         614         615         616         617         618         619         620 
-40.9268758 -11.1744672  28.1296965  37.8425806  42.0920299  51.4647719 -18.3928951 -18.5807780  -1.9502618   5.8742987 
        621         622         623         624         625         626         627         628         629         630 
  4.2111367 -12.3325118   9.1186090  10.4187804  15.6765671  11.1020364  15.6765671  15.5047031  17.8401034  -2.3339254 
        631         632         633         634         635         636         637         638         639         640 
 24.1065756  48.4801623 -33.5191061  10.7228834 -19.3676776 -47.3036075  -6.2104499 -15.7391061 -11.7436075 -25.2604001 
        641         642         643         644         645         646         647         648         649         650 
-23.5671166 -24.6319839   3.9691276 -23.8957754 -25.0264036 -15.7505541 -31.8559085  16.4040915  31.0535973 -15.4942370 
        651         652         653         654         655         656         657         658         659         660 
  7.3450218  -0.0919812 -32.6839531 -23.9504288  12.7265653  44.0551098  30.9079939  75.8709460  50.1003670  54.1385897 
        661         662         663         664         665         666         667         668         669         670 
 48.9927535  20.3035755  38.6703670  45.2485897  27.0769089 -15.0458489  -6.9689626   7.0152212  -8.7957798  -3.8371399 
        671         672         673         674         675         676         677         678         679         680 
-35.1733455 -14.5493274  22.2479507 -14.9496399 -33.4800122 -19.6293274 -20.4216327  37.4879507 -52.7745732 -21.6171399 
        681         682         683         684         685         686         687         688         689         690 
-36.5626608  16.6748393 -10.6325828  -1.6164038   5.8388105  -1.7910059  18.5873266  16.5800087   9.5095211 -20.9887244 
        691         692         693         694         695         696         697         698         699         700 
 17.3858278  24.9785419  18.1040087   1.8895211  39.9895211 -37.6028776 -21.3968957 -45.1077652  17.0742314  26.0298701 
        701         702         703         704         705         706         707         708         709         710 
 26.0065624  -4.9735467 -13.8234783   1.5104741   3.4390824  -3.8222283   4.1269153   8.9359937   0.6941222  24.9645485 
        711         712         713         714         715         716         717         718         719         720 
 36.8475028 -44.4324972 -23.8813731 -37.8727733 -33.5329124 -41.1989726 -36.6100007 -25.4181184 -24.3566771  -1.0747996 
        721         722         723         724         725         726         727         728         729         730 
 10.6810798 -19.3885468  74.0375450  53.7337634  56.0285847  29.0976379   8.8751266  35.4238554   5.8066380  39.7468075 
        731         732         733         734         735         736         737         738         739         740 
 33.0134712   8.8751266  12.5638554  10.5607325   5.6229595   1.1742887   2.5172781  -2.2416924 -45.7757036  12.5802042 
        741         742         743         744         745         746         747         748         749         750 
 11.3029942  -9.5665020 -15.0884257 -24.7118506 -45.8582127 -21.9995442 -22.4181828 -23.3165095   9.0443530 -18.7552918 
        751         752         753         754         755         756         757         758         759         760 
  0.1686364   0.1543530 -33.1486252   0.9185009 -13.8156470 -13.6752918 -27.0214991  27.9335555   7.1018303  -5.4292802 
        761         762         763         764         765         766         767         768         769         770 
  4.8431694  28.0051883  19.5743635  20.0288429  21.5128320   4.4460072   2.0184568 -12.7689740   5.1860269 -20.8466506 
        771         772         773         774         775         776         777         778         779         780 
 23.4029271  35.3950719  31.1650729  35.7478263  20.6935937  -1.9429281  46.9342395  43.3678263   7.1818464  11.2109271 
        781         782         783         784         785         786         787         788         789         790 
 19.3930719  29.5775729  41.8438263  29.4367104 -22.9012308 -26.1118028  -4.7569478 -15.4963016 -43.7993011 -36.5582869 
        791         792         793         794         795         796         797         798         799         800 
-55.2766902  20.2334426  -4.7528785   1.0119168 -13.0284800 -39.8682786 -51.8714368  21.2064191  15.2199714  13.9499216 
        801         802         803         804         805         806         807         808         809         810 
 28.1279321  16.4760366  12.4524905 -29.3231362  12.5774856  46.5191952   0.3839324   3.5178577 -14.1861899  -6.6610094 
        811         812         813         814         815         816         817         818         819         820 
 -1.2464926 -18.4342621 -12.4277720  -8.6589656 -23.7528910   5.1691351 -13.4504552 -14.0926218  -6.0867723  18.4589094 
        821         822         823         824         825         826         827         828         829         830 
-10.9104552 -10.2826218  72.6532277 121.9973791 -18.5304552   1.1473782   9.1532277   5.1239094  10.2562115   6.7353782 
        831         832         833         834         835         836         837         838         839         840 
 10.5949238 -22.4250762   4.2155105 -21.9976032 -10.9337132 -15.4560403 -23.9909401 -30.8574474 -43.6264264 -35.3008679 
        841         842         843         844         845         846         847         848         849         850 
-29.8791615 -10.9959481  -7.1665760   7.4675304  28.8881335  12.6460722  11.6575386 -18.6220020 -26.0416952 -20.9222947 
        851         852         853         854         855         856         857         858         859         860 
-23.1009887 -16.0240515 -40.1146510  -8.0033450 -57.6014145 -13.6264078  -5.6878901 -13.2257013 -18.1712825 -12.5826706 
        861         862         863         864         865         866         867         868         869         870 
-18.0524509 -28.9782857 -41.5841798 -37.1823992 -41.7482078 -35.2792460 -62.2124049 -20.2066323  11.8633628   4.7936427 
        871         872         873         874         875         876         877         878         879         880 
 -2.6011082 -23.4975845 -20.2607427   6.1390738   2.7841937 -21.7165979 -11.1196009 -15.7715728  16.8128343 -21.7737137 
        881         882         883         884         885         886         887         888         889         890 
-13.5772688  -4.6289191   3.0343111  -3.0709505  -5.6296382  -3.5318709  11.7497854   0.1168101 -27.1858675  21.4764239 
        891         892         893         894         895         896         897         898         899         900 
 10.7117312  -2.7950242  -5.4910674 -17.6502976   8.4033238 -10.6690962  27.2168151  16.5948750 -22.2557746  11.7004492 
        901         902         903         904         905         906         907         908         909         910 
 -6.0795508  -6.1436892 -57.7148650  14.0030355   3.4413679  -0.5097840  -4.3609776 -13.8989804  -2.3099031   3.1578597 
        911         912         913         914         915         916         917         918         919         920 
  3.5143217 -26.0854586 -23.7731796 -15.7202758 -31.9750714 -56.1462650   4.1657322  23.1051958 -40.6887934 -14.4777362 
        921         922         923         924         925         926         927         928         929         930 
-16.6365521 -40.7257940 -28.3217170 -37.3598336  -9.1886985 -30.1775078  26.6909185 -20.7665021  -5.5559476  51.0591733 
        931         932         933         934         935         936         937         938         939         940 
-11.8711140 -35.0399227 -39.3132669 -32.4194250 -44.5836421 -13.7444472  68.3986210  -2.0781637   0.4216735  25.8305933 
        941         942         943         944         945         946         947         948         949         950 
  1.8985376  19.6785376   7.6033088   5.0311912  -5.2944231  -9.2556634  -1.4881291 -23.3159639   5.9117696  32.6962943 
        951         952         953         954         955         956         957         958         959         960 
 37.9902834  33.6234586  15.0451031  10.2298397  45.9820021  48.7441888  53.1049325  47.9574507  37.2706177  26.5033841 
        961         962         963         964         965         966         967         968         969         970 
 48.3222466  33.2820021   7.0881888  47.5945936  48.9546177   0.5909013  23.5572466  35.8220021 -27.4558112  20.7314861 
        971         972         973         974         975         976         977         978         979         980 
-24.6844958  15.6514861  29.2076917   2.6491566  -8.6546644  12.4432336   0.9558233 -55.3861167  -0.3141767  10.8186690 
        981         982         983         984         985         986         987         988         989         990 
 -0.3823102   1.3186804 -11.1946644  20.1929969   1.5310639 -17.6580980 -25.3117465   7.4929969  11.9450639  -9.6147647 
        991         992         993         994         995         996         997         998         999        1000 
-17.6917465  20.1929969  18.6067592  24.2559230  14.4050784   0.8580928   7.0055641  14.5709984  -9.1915656  54.1667592 
 [ reached 'max' / getOption("max.print") -- omitted 8746 entries ]
residuals(perfla.lm, quantileFunction = qnorm)
          1           2           3           4           5           6           7           8           9          10 
  3.5062776   6.5769668  -2.6388778 -30.7001491 -16.7140331 -41.2079578 -47.9331207 -40.9315647 -29.9907342 -42.2908646 
         11          12          13          14          15          16          17          18          19          20 
-55.8378501  23.9071761  34.2811652  18.2303404  18.5967900   1.1188089  -0.4540159 -33.2563714  21.2964526  34.7096278 
         21          22          23          24          25          26          27          28          29          30 
 -4.4823065 -15.0633174  -6.7301422  14.3373073  42.6365023  30.2012389   6.2478365  -3.0284430  25.4476362   3.6483607 
         31          32          33          34          35          36          37          38          39          40 
 14.3140072  -5.9237625  -4.8318762  -2.9126923   2.1673077  -6.0661188   9.6449513  46.0441025 -33.2786548  33.5581912 
         41          42          43          44          45          46          47          48          49          50 
 -7.8760731 -24.0176201 -14.9922284 -18.0752912 -10.1367734   1.2951799 -17.3267920 -18.2251187 -53.3223849 -16.2116216 
         51          52          53          54          55          56          57          58          59          60 
-20.8222358 -46.2222857  18.5162773 -47.7909592  -7.5077829  -6.0018523   2.4382280  17.3842171  17.4478419  12.6572574 
         61          62          63          64          65          66          67          68          69          70 
-21.6318190  -3.3591635  24.8508760 -44.1734992 -22.4676378 -13.4631131  -3.0891240   2.7040512  44.7265008 -18.0341230 
         71          72          73          74          75          76          77          78          79          80 
 -9.8972639 -35.1752160 -24.5757667   6.3869753  14.0069753   9.7142333  35.3294113  48.5024277  20.8471571  31.1695436 
         81          82          83          84          85          86          87          88          89          90 
-20.0775723  -4.7844765 -32.4728127 -12.9019907 -55.7799286 -32.2264793 -19.2977373 -18.2953013  15.6873782   6.4289864 
         91          92          93          94          95          96          97          98          99         100 
 -0.8728356 -17.5420519 -21.0218038 -18.7427415  -9.9623829  39.4041590  32.0675137  58.5376586  74.1831595 106.3884130 
        101         102         103         104         105         106         107         108         109         110 
 31.9251574  16.9086356  66.9149408  38.5561344  62.0629460  23.7334469  80.7037003  23.8706172  17.5145964  -9.7429410 
        111         112         113         114         115         116         117         118         119         120 
-23.5299440 -12.0952492 -26.1169093   4.8344172   6.6701633 -17.8847204 -13.8452213 -19.1547204  14.9555330  14.9944172 
        121         122         123         124         125         126         127         128         129         130 
 41.6255330 -23.3762209 -16.2105765 -20.3003538  10.8758100 -11.3491900 106.9486941   4.7333214  70.5581434  32.6733214 
        131         132         133         134         135         136         137         138         139         140 
 20.1929969   1.5310639 -17.6580980 -25.3117465   7.4929969  11.9450639  -9.6147647 -17.6917465  20.1929969 -22.9059029 
        141         142         143         144         145         146         147         148         149         150 
-14.5861015 -22.9059029 -16.3744744 -29.8261015 -19.0525017 -52.1776408 -50.0647009  -2.2745122 -13.3232798 -18.1244864 
        151         152         153         154         155         156         157         158         159         160 
-25.9216311 -29.6370050  27.2564015   6.3311041  48.8521292  75.0471358  38.2565364  46.7606527  18.6136808 -20.5963126 
        161         162         163         164         165         166         167         168         169         170 
 -3.2002454  17.6548959 -18.1986689  -2.3749826   8.7287478  26.1352931 -34.9298460  -4.8769061 109.3130658  53.1629544 
        171         172         173         174         175         176         177         178         179         180 
 15.4420194  50.6229544  -9.3328999   5.1724362  68.9890720   9.4180339   9.1351268 -11.6451577 -29.8771607 -10.0865213 
        181         182         183         184         185         186         187         188         189         190 
-19.7171607 -29.4491326 -11.7801440  20.5083022 -19.9095111  12.3912326  25.8104889  46.0048560 -22.7847048 -22.6909155 
        191         192         193         194         195         196         197         198         199         200 
-43.0645420  10.1659777 -13.5501355 -10.7375636   2.5459777 -18.6301355   0.5804273   1.2902612  -9.5190223 -10.6486671 
        201         202         203         204         205         206         207         208         209         210 
  4.5801257   9.3098645  -0.7611433  20.2720319   8.2674774  -2.2376807   8.6697688  -7.4810362  -8.9096329   8.3270607 
        211         212         213         214         215         216         217         218         219         220 
-16.7302312 -13.8344845 -15.5129009 -27.0526373   0.4152046 -19.0303459  19.9849208  41.8840762 -28.8966178  39.7885213 
        221         222         223         224         225         226         227         228         229         230 
 37.7078266  34.1763220  10.3596273  70.2448215  81.5548885 106.3077266  57.2545358  82.5708885  79.6377266  88.0707448 
        231         232         233         234         235         236         237         238         239         240 
 31.1288215  73.2575552  56.7440781  35.3531176  66.6888215  70.7477266 107.5440781  38.2433117  20.0586660  12.8433117 
        241         242         243         244         245         246         247         248         249         250 
 14.7928174  -4.4571835   6.0886660   0.6228165  10.7828165  -1.9171835  -2.8013340  16.8122223  34.1172290  34.1566295 
        251         252         253         254         255         256         257         258         259         260 
 22.6872290  20.1472290  38.2457467   1.4979355 -45.3576457 -26.1145324  -9.4047769 -12.7385903 -29.5868466 -40.8121854 
        261         262         263         264         265         266         267         268         269         270 
-24.2121614 -14.2679745 -24.4279745 -12.3516343  -5.4607870 -17.8377068  -9.6113078 -17.6002798 -27.3772270   5.3766121 
        271         272         273         274         275         276         277         278         279         280 
-42.6172270  -3.1958879 -32.9249079 -42.6172270  44.2371141  29.0112979  43.3416302  26.0708346  27.2996411   7.1783049 
        281         282         283         284         285         286         287         288         289         290 
 21.9967578  27.1756082  57.9312739   8.7834783  16.9972848   4.1572819  -0.1757656  45.6382635  65.5719841  -8.1589119 
        291         292         293         294         295         296         297         298         299         300 
 -5.8090177  10.1445049  34.8309823   8.7986501  -8.4631337  -5.9654694  -8.1589119 -15.4817702 -16.7741902  46.5117211 
        301         302         303         304         305         306         307         308         309         310 
 40.9697810  29.2334866  17.2381561   9.5114586  25.0271303  27.8000855   6.8291023 -17.1819359   2.0247740  41.0834435 
        311         312         313         314         315         316         317         318         319         320 
 60.0267459   2.7128007   1.8646050  69.4435098  48.8121793   0.8151059 -14.2666977  24.7266175  20.2098704 -12.8450489 
        321         322         323         324         325         326         327         328         329         330 
 -9.2349041 -29.9053555  -8.2445843 -16.6539766 -18.3521043 -22.5199234  -8.3808987   7.6714816   4.3278610 -16.4891241 
        331         332         333         334         335         336         337         338         339         340 
 15.0811294   8.7700135 -21.6282286 -39.3274543 -55.2126342  56.8242498  50.0276088  -1.2725003  35.3673939  21.4759165 
        341         342         343         344         345         346         347         348         349         350 
 20.8176088   4.8234997   6.1573939  18.2250616  -1.0749960  -9.1967222  19.5709165  -0.7723912  65.2909165 -35.7250592 
        351         352         353         354         355         356         357         358         359         360 
-75.2297489 -13.3255935   6.6020309   1.3796746  33.9105050 -32.1809667  -6.7667829   8.3255494   1.7227538   6.2954538 
        361         362         363         364         365         366         367         368         369         370 
-13.1121767 -18.4779148 -26.1228502 -40.7330177 -40.2995927  11.1992519 -53.4330177  12.7206927  15.9438283   0.8744662 
        371         372         373         374         375         376         377         378         379         380 
 14.6274350  12.1849237  17.9903191  17.5831017   9.7050104  -1.6750536 -21.0323741  10.4915904  14.1275816  -2.6599213 
        381         382         383         384         385         386         387         388         389         390 
 56.3874121 -20.7412754   0.8660832  -6.9490274  -4.0515302   3.1081973 -26.8574120  -6.2705227 -25.5500218  18.7202317 
        391         392         393         394         395         396         397         398         399         400 
 26.6071210  -9.3621246  18.6562058  15.2346198  24.5500433 -14.5917340 -23.5475702   5.3365852 -11.1855493 -17.6451907 
        401         402         403         404         405         406         407         408         409         410 
-27.0326823 -31.0294709   4.3147072   6.0070527 -31.2415860 -21.5565793   7.7822483  28.1001003 -14.2310850 -17.9680129 
        411         412         413         414         415         416         417         418         419         420 
 23.6684555 -12.9228347  16.4666695  23.5281003  16.0484555   4.8919871  -5.9640830  -4.0229752 -22.2311029 -10.7567553 
        421         422         423         424         425         426         427         428         429         430 
-32.3911029  -4.8300887   6.0848413  14.7276026  -3.6044363  -6.9467553 -27.7818254   2.7899113  45.8781746  23.7666282 
        431         432         433         434         435         436         437         438         439         440 
 26.9154602   0.6847328  36.2586676  22.9199616  11.6754602   5.7786178  16.5699616  16.1204602  10.0869010  28.6386676 
        441         442         443         444         445         446         447         448         449         450 
 17.2086178   7.6799616  12.8899924 -29.9575666 -25.3056943 -42.3005133 -53.7164167 -34.0669887  -0.4395571  16.0667866 
        451         452         453         454         455         456         457         458         459         460 
 12.4422852  24.7588424  -5.7312238  48.0022852   3.4974429  17.6542866  37.0115578 -23.7581999   8.5314403  -7.4245073 
        461         462         463         464         465         466         467         468         469         470 
  3.7514429   8.4467866 -13.0372635  12.2718442  20.3708593  13.5813974  15.6909941 -10.1737176  23.6830285   2.4997061 
        471         472         473         474         475         476         477         478         479         480 
  8.6195936  15.9550717   7.4298882  15.5050080 -15.2135547 -15.2537176  -0.0137176  -2.7329715 -18.8181510 -24.1155585 
        481         482         483         484         485         486         487         488         489         490 
 -4.3145785  -5.1168976  -7.4895785 -15.5943976  -9.8653009 -54.9858729  13.8935492 -12.1885785  -4.1008976 -25.1053009 
        491         492         493         494         495         496         497         498         499         500 
-21.9658729 -46.5534926  -5.3195585  16.4731024 -24.5058729  20.6265487  43.0584210  23.8411019   4.4876986 -23.2762067 
        501         502         503         504         505         506         507         508         509         510 
 25.0138214   5.4261019 -17.7728734  35.8665487  31.6284210  -4.7338981 -34.2828734  11.3194410  38.9145487  15.1184210 
        511         512         513         514         515         516         517         518         519         520 
-19.9458326  -0.6960771   9.6861096  24.8418533  19.3315144  30.2165385   3.7489229  -6.8238904  30.8108533   0.9165144 
        521         522         523         524         525         526         527         528         529         530 
-15.7138904  10.2298477  -7.5421900  -3.0124992  -6.6227437   6.2994429 -54.5331467  75.9365385  35.2710911  32.1031581 
        531         532         533         534         535         536         537         538         539         540 
 30.4399961  -4.5186524  32.5887348  31.5374684  15.6349125  12.4839913  49.5130308  30.5484454  -0.3247165  30.1216350 
        541         542         543         544         545         546         547         548         549         550 
 51.9106745  48.7110618  36.6929427  25.7822930   1.4455504 -26.9252928 -39.6160134  11.9689715  47.8643951   8.7529427 
        551         552         553         554         555         556         557         558         559         560 
 33.8943951   8.7529427  23.4213914 -10.8515376 -19.1289091 -24.1633100 -14.3681195 -16.2112777  -9.6763414 -18.9743099 
        561         562         563         564         565         566         567         568         569         570 
-30.7156404 -27.0123380  -6.5069896 -29.3010480 -39.5574420 -38.9162725   6.0985544  -4.6829574  -6.9266738 -27.1233301 
        571         572         573         574         575         576         577         578         579         580 
 45.0919430  19.9959611   7.9550844  21.2332392 -15.6892847 -20.0368536  -2.3118514   8.5659611 -39.5764193 -58.2873423 
        581         582         583         584         585         586         587         588         589         590 
-18.9000572 -46.2905449 -19.3619972 -14.9216474   1.4024515 -14.2409685 -39.2200572 -13.2705449  18.7380028 -34.0826469 
        591         592         593         594         595         596         597         598         599         600 
 -5.5402152   9.2540315  -8.4860572 -18.3505449  -4.1219972  -6.7080572 -23.4305449  12.3880028  -7.4126469  31.9949581 
        601         602         603         604         605         606         607         608         609         610 
 20.0024727  -3.3325206  -3.4342312  -0.4740029  11.1641661  24.5773413   3.5441661  -2.5159920 -16.7758339 -23.0476587 
        611         612         613         614         615         616         617         618         619         620 
-40.9268758 -11.1744672  28.1296965  37.8425806  42.0920299  51.4647719 -18.3928951 -18.5807780  -1.9502618   5.8742987 
        621         622         623         624         625         626         627         628         629         630 
  4.2111367 -12.3325118   9.1186090  10.4187804  15.6765671  11.1020364  15.6765671  15.5047031  17.8401034  -2.3339254 
        631         632         633         634         635         636         637         638         639         640 
 24.1065756  48.4801623 -33.5191061  10.7228834 -19.3676776 -47.3036075  -6.2104499 -15.7391061 -11.7436075 -25.2604001 
        641         642         643         644         645         646         647         648         649         650 
-23.5671166 -24.6319839   3.9691276 -23.8957754 -25.0264036 -15.7505541 -31.8559085  16.4040915  31.0535973 -15.4942370 
        651         652         653         654         655         656         657         658         659         660 
  7.3450218  -0.0919812 -32.6839531 -23.9504288  12.7265653  44.0551098  30.9079939  75.8709460  50.1003670  54.1385897 
        661         662         663         664         665         666         667         668         669         670 
 48.9927535  20.3035755  38.6703670  45.2485897  27.0769089 -15.0458489  -6.9689626   7.0152212  -8.7957798  -3.8371399 
        671         672         673         674         675         676         677         678         679         680 
-35.1733455 -14.5493274  22.2479507 -14.9496399 -33.4800122 -19.6293274 -20.4216327  37.4879507 -52.7745732 -21.6171399 
        681         682         683         684         685         686         687         688         689         690 
-36.5626608  16.6748393 -10.6325828  -1.6164038   5.8388105  -1.7910059  18.5873266  16.5800087   9.5095211 -20.9887244 
        691         692         693         694         695         696         697         698         699         700 
 17.3858278  24.9785419  18.1040087   1.8895211  39.9895211 -37.6028776 -21.3968957 -45.1077652  17.0742314  26.0298701 
        701         702         703         704         705         706         707         708         709         710 
 26.0065624  -4.9735467 -13.8234783   1.5104741   3.4390824  -3.8222283   4.1269153   8.9359937   0.6941222  24.9645485 
        711         712         713         714         715         716         717         718         719         720 
 36.8475028 -44.4324972 -23.8813731 -37.8727733 -33.5329124 -41.1989726 -36.6100007 -25.4181184 -24.3566771  -1.0747996 
        721         722         723         724         725         726         727         728         729         730 
 10.6810798 -19.3885468  74.0375450  53.7337634  56.0285847  29.0976379   8.8751266  35.4238554   5.8066380  39.7468075 
        731         732         733         734         735         736         737         738         739         740 
 33.0134712   8.8751266  12.5638554  10.5607325   5.6229595   1.1742887   2.5172781  -2.2416924 -45.7757036  12.5802042 
        741         742         743         744         745         746         747         748         749         750 
 11.3029942  -9.5665020 -15.0884257 -24.7118506 -45.8582127 -21.9995442 -22.4181828 -23.3165095   9.0443530 -18.7552918 
        751         752         753         754         755         756         757         758         759         760 
  0.1686364   0.1543530 -33.1486252   0.9185009 -13.8156470 -13.6752918 -27.0214991  27.9335555   7.1018303  -5.4292802 
        761         762         763         764         765         766         767         768         769         770 
  4.8431694  28.0051883  19.5743635  20.0288429  21.5128320   4.4460072   2.0184568 -12.7689740   5.1860269 -20.8466506 
        771         772         773         774         775         776         777         778         779         780 
 23.4029271  35.3950719  31.1650729  35.7478263  20.6935937  -1.9429281  46.9342395  43.3678263   7.1818464  11.2109271 
        781         782         783         784         785         786         787         788         789         790 
 19.3930719  29.5775729  41.8438263  29.4367104 -22.9012308 -26.1118028  -4.7569478 -15.4963016 -43.7993011 -36.5582869 
        791         792         793         794         795         796         797         798         799         800 
-55.2766902  20.2334426  -4.7528785   1.0119168 -13.0284800 -39.8682786 -51.8714368  21.2064191  15.2199714  13.9499216 
        801         802         803         804         805         806         807         808         809         810 
 28.1279321  16.4760366  12.4524905 -29.3231362  12.5774856  46.5191952   0.3839324   3.5178577 -14.1861899  -6.6610094 
        811         812         813         814         815         816         817         818         819         820 
 -1.2464926 -18.4342621 -12.4277720  -8.6589656 -23.7528910   5.1691351 -13.4504552 -14.0926218  -6.0867723  18.4589094 
        821         822         823         824         825         826         827         828         829         830 
-10.9104552 -10.2826218  72.6532277 121.9973791 -18.5304552   1.1473782   9.1532277   5.1239094  10.2562115   6.7353782 
        831         832         833         834         835         836         837         838         839         840 
 10.5949238 -22.4250762   4.2155105 -21.9976032 -10.9337132 -15.4560403 -23.9909401 -30.8574474 -43.6264264 -35.3008679 
        841         842         843         844         845         846         847         848         849         850 
-29.8791615 -10.9959481  -7.1665760   7.4675304  28.8881335  12.6460722  11.6575386 -18.6220020 -26.0416952 -20.9222947 
        851         852         853         854         855         856         857         858         859         860 
-23.1009887 -16.0240515 -40.1146510  -8.0033450 -57.6014145 -13.6264078  -5.6878901 -13.2257013 -18.1712825 -12.5826706 
        861         862         863         864         865         866         867         868         869         870 
-18.0524509 -28.9782857 -41.5841798 -37.1823992 -41.7482078 -35.2792460 -62.2124049 -20.2066323  11.8633628   4.7936427 
        871         872         873         874         875         876         877         878         879         880 
 -2.6011082 -23.4975845 -20.2607427   6.1390738   2.7841937 -21.7165979 -11.1196009 -15.7715728  16.8128343 -21.7737137 
        881         882         883         884         885         886         887         888         889         890 
-13.5772688  -4.6289191   3.0343111  -3.0709505  -5.6296382  -3.5318709  11.7497854   0.1168101 -27.1858675  21.4764239 
        891         892         893         894         895         896         897         898         899         900 
 10.7117312  -2.7950242  -5.4910674 -17.6502976   8.4033238 -10.6690962  27.2168151  16.5948750 -22.2557746  11.7004492 
        901         902         903         904         905         906         907         908         909         910 
 -6.0795508  -6.1436892 -57.7148650  14.0030355   3.4413679  -0.5097840  -4.3609776 -13.8989804  -2.3099031   3.1578597 
        911         912         913         914         915         916         917         918         919         920 
  3.5143217 -26.0854586 -23.7731796 -15.7202758 -31.9750714 -56.1462650   4.1657322  23.1051958 -40.6887934 -14.4777362 
        921         922         923         924         925         926         927         928         929         930 
-16.6365521 -40.7257940 -28.3217170 -37.3598336  -9.1886985 -30.1775078  26.6909185 -20.7665021  -5.5559476  51.0591733 
        931         932         933         934         935         936         937         938         939         940 
-11.8711140 -35.0399227 -39.3132669 -32.4194250 -44.5836421 -13.7444472  68.3986210  -2.0781637   0.4216735  25.8305933 
        941         942         943         944         945         946         947         948         949         950 
  1.8985376  19.6785376   7.6033088   5.0311912  -5.2944231  -9.2556634  -1.4881291 -23.3159639   5.9117696  32.6962943 
        951         952         953         954         955         956         957         958         959         960 
 37.9902834  33.6234586  15.0451031  10.2298397  45.9820021  48.7441888  53.1049325  47.9574507  37.2706177  26.5033841 
        961         962         963         964         965         966         967         968         969         970 
 48.3222466  33.2820021   7.0881888  47.5945936  48.9546177   0.5909013  23.5572466  35.8220021 -27.4558112  20.7314861 
        971         972         973         974         975         976         977         978         979         980 
-24.6844958  15.6514861  29.2076917   2.6491566  -8.6546644  12.4432336   0.9558233 -55.3861167  -0.3141767  10.8186690 
        981         982         983         984         985         986         987         988         989         990 
 -0.3823102   1.3186804 -11.1946644  20.1929969   1.5310639 -17.6580980 -25.3117465   7.4929969  11.9450639  -9.6147647 
        991         992         993         994         995         996         997         998         999        1000 
-17.6917465  20.1929969  18.6067592  24.2559230  14.4050784   0.8580928   7.0055641  14.5709984  -9.1915656  54.1667592 
 [ reached 'max' / getOption("max.print") -- omitted 8746 entries ]
plot(perfla.lm)

Post-hoc comparisons

perfla.emm <- emmeans(perfla.lm, ~ begin_date_year*age_group)
pairs(perfla.emm, simple = "age_group")
begin_date_year = 1988:
 contrast                  estimate   SE   df  t.ratio p.value
 age_group0 - age_group1      -34.2 2.52 9719  -13.574  <.0001
 age_group0 - age_group2      -72.1 2.44 9719  -29.599  <.0001
 age_group0 - age_group3     -100.5 2.42 9719  -41.538  <.0001
 age_group0 - age_group4     -126.1 2.43 9719  -51.863  <.0001
 age_group0 - age_group5     -151.6 2.46 9719  -61.594  <.0001
 age_group0 - age_group6     -174.5 2.51 9719  -69.369  <.0001
 age_group0 - age_group7     -195.7 2.64 9719  -74.074  <.0001
 age_group0 - age_group8     -214.7 2.86 9719  -74.938  <.0001
 age_group0 - age_group9     -231.2 3.27 9719  -70.623  <.0001
 age_group0 - age_group10    -243.2 3.96 9719  -61.402  <.0001
 age_group0 - age_group11    -258.1 5.43 9719  -47.487  <.0001
 age_group1 - age_group2      -37.9 1.26 9719  -29.957  <.0001
 age_group1 - age_group3      -66.3 1.23 9719  -53.959  <.0001
 age_group1 - age_group4      -91.9 1.25 9719  -73.645  <.0001
 age_group1 - age_group5     -117.4 1.30 9719  -90.080  <.0001
 age_group1 - age_group6     -140.2 1.40 9719 -100.040  <.0001
 age_group1 - age_group7     -161.5 1.62 9719  -99.845  <.0001
 age_group1 - age_group8     -180.5 1.96 9719  -92.006  <.0001
 age_group1 - age_group9     -196.9 2.52 9719  -78.187  <.0001
 age_group1 - age_group10    -209.0 3.36 9719  -62.114  <.0001
 age_group1 - age_group11    -223.9 5.02 9719  -44.627  <.0001
 age_group2 - age_group3      -28.4 1.03 9719  -27.616  <.0001
 age_group2 - age_group4      -54.0 1.05 9719  -51.363  <.0001
 age_group2 - age_group5      -79.5 1.12 9719  -71.210  <.0001
 age_group2 - age_group6     -102.4 1.23 9719  -83.191  <.0001
 age_group2 - age_group7     -123.6 1.47 9719  -84.021  <.0001
 age_group2 - age_group8     -142.6 1.84 9719  -77.359  <.0001
 age_group2 - age_group9     -159.1 2.43 9719  -65.518  <.0001
 age_group2 - age_group10    -171.1 3.30 9719  -51.904  <.0001
 age_group2 - age_group11    -186.0 4.97 9719  -37.415  <.0001
 age_group3 - age_group4      -25.6 1.01 9719  -25.398  <.0001
 age_group3 - age_group5      -51.1 1.07 9719  -47.562  <.0001
 age_group3 - age_group6      -73.9 1.19 9719  -62.050  <.0001
 age_group3 - age_group7      -95.2 1.44 9719  -66.170  <.0001
 age_group3 - age_group8     -114.2 1.82 9719  -62.827  <.0001
 age_group3 - age_group9     -130.6 2.41 9719  -54.264  <.0001
 age_group3 - age_group10    -142.7 3.28 9719  -43.477  <.0001
 age_group3 - age_group11    -157.6 4.96 9719  -31.760  <.0001
 age_group4 - age_group5      -25.5 1.09 9719  -23.334  <.0001
 age_group4 - age_group6      -48.4 1.21 9719  -40.013  <.0001
 age_group4 - age_group7      -69.6 1.45 9719  -47.923  <.0001
 age_group4 - age_group8      -88.6 1.83 9719  -48.456  <.0001
 age_group4 - age_group9     -105.1 2.42 9719  -43.495  <.0001
 age_group4 - age_group10    -117.1 3.29 9719  -35.624  <.0001
 age_group4 - age_group11    -132.0 4.97 9719  -26.586  <.0001
 age_group5 - age_group6      -22.9 1.26 9719  -18.079  <.0001
 age_group5 - age_group7      -44.1 1.50 9719  -29.421  <.0001
 age_group5 - age_group8      -63.1 1.87 9719  -33.824  <.0001
 age_group5 - age_group9      -79.6 2.44 9719  -32.566  <.0001
 age_group5 - age_group10     -91.6 3.31 9719  -27.695  <.0001
 age_group5 - age_group11    -106.5 4.98 9719  -21.392  <.0001
 age_group6 - age_group7      -21.2 1.58 9719  -13.406  <.0001
 age_group6 - age_group8      -40.2 1.93 9719  -20.800  <.0001
 age_group6 - age_group9      -56.7 2.50 9719  -22.724  <.0001
 age_group6 - age_group10     -68.8 3.35 9719  -20.543  <.0001
 age_group6 - age_group11     -83.6 5.00 9719  -16.713  <.0001
 age_group7 - age_group8      -19.0 2.09 9719   -9.066  <.0001
 age_group7 - age_group9      -35.5 2.62 9719  -13.532  <.0001
 age_group7 - age_group10     -47.5 3.44 9719  -13.807  <.0001
 age_group7 - age_group11     -62.4 5.07 9719  -12.312  <.0001
 age_group8 - age_group9      -16.5 2.84 9719   -5.795  <.0001
 age_group8 - age_group10     -28.5 3.62 9719   -7.894  <.0001
 age_group8 - age_group11     -43.4 5.19 9719   -8.370  <.0001
 age_group9 - age_group10     -12.1 3.94 9719   -3.058  0.0928
 age_group9 - age_group11     -26.9 5.42 9719   -4.969  <.0001
 age_group10 - age_group11    -14.9 5.86 9719   -2.537  0.3167

P value adjustment: tukey method for comparing a family of 12 estimates 
test(pairs(perfla.emm, by = "begin_date_year"), by = NULL, adjust = "mvt")
 contrast                  begin_date_year estimate   SE   df  t.ratio p.value
 age_group0 - age_group1              1988    -34.2 2.52 9719  -13.574  <.0001
 age_group0 - age_group2              1988    -72.1 2.44 9719  -29.599  <.0001
 age_group0 - age_group3              1988   -100.5 2.42 9719  -41.538  <.0001
 age_group0 - age_group4              1988   -126.1 2.43 9719  -51.863  <.0001
 age_group0 - age_group5              1988   -151.6 2.46 9719  -61.594  <.0001
 age_group0 - age_group6              1988   -174.5 2.51 9719  -69.369  <.0001
 age_group0 - age_group7              1988   -195.7 2.64 9719  -74.074  <.0001
 age_group0 - age_group8              1988   -214.7 2.86 9719  -74.938  <.0001
 age_group0 - age_group9              1988   -231.2 3.27 9719  -70.623  <.0001
 age_group0 - age_group10             1988   -243.2 3.96 9719  -61.402  <.0001
 age_group0 - age_group11             1988   -258.1 5.43 9719  -47.487  <.0001
 age_group1 - age_group2              1988    -37.9 1.26 9719  -29.957  <.0001
 age_group1 - age_group3              1988    -66.3 1.23 9719  -53.959  <.0001
 age_group1 - age_group4              1988    -91.9 1.25 9719  -73.645  <.0001
 age_group1 - age_group5              1988   -117.4 1.30 9719  -90.080  <.0001
 age_group1 - age_group6              1988   -140.2 1.40 9719 -100.040  <.0001
 age_group1 - age_group7              1988   -161.5 1.62 9719  -99.845  <.0001
 age_group1 - age_group8              1988   -180.5 1.96 9719  -92.006  <.0001
 age_group1 - age_group9              1988   -196.9 2.52 9719  -78.187  <.0001
 age_group1 - age_group10             1988   -209.0 3.36 9719  -62.114  <.0001
 age_group1 - age_group11             1988   -223.9 5.02 9719  -44.627  <.0001
 age_group2 - age_group3              1988    -28.4 1.03 9719  -27.616  <.0001
 age_group2 - age_group4              1988    -54.0 1.05 9719  -51.363  <.0001
 age_group2 - age_group5              1988    -79.5 1.12 9719  -71.210  <.0001
 age_group2 - age_group6              1988   -102.4 1.23 9719  -83.191  <.0001
 age_group2 - age_group7              1988   -123.6 1.47 9719  -84.021  <.0001
 age_group2 - age_group8              1988   -142.6 1.84 9719  -77.359  <.0001
 age_group2 - age_group9              1988   -159.1 2.43 9719  -65.518  <.0001
 age_group2 - age_group10             1988   -171.1 3.30 9719  -51.904  <.0001
 age_group2 - age_group11             1988   -186.0 4.97 9719  -37.415  <.0001
 age_group3 - age_group4              1988    -25.6 1.01 9719  -25.398  <.0001
 age_group3 - age_group5              1988    -51.1 1.07 9719  -47.562  <.0001
 age_group3 - age_group6              1988    -73.9 1.19 9719  -62.050  <.0001
 age_group3 - age_group7              1988    -95.2 1.44 9719  -66.170  <.0001
 age_group3 - age_group8              1988   -114.2 1.82 9719  -62.827  <.0001
 age_group3 - age_group9              1988   -130.6 2.41 9719  -54.264  <.0001
 age_group3 - age_group10             1988   -142.7 3.28 9719  -43.477  <.0001
 age_group3 - age_group11             1988   -157.6 4.96 9719  -31.760  <.0001
 age_group4 - age_group5              1988    -25.5 1.09 9719  -23.334  <.0001
 age_group4 - age_group6              1988    -48.4 1.21 9719  -40.013  <.0001
 age_group4 - age_group7              1988    -69.6 1.45 9719  -47.923  <.0001
 age_group4 - age_group8              1988    -88.6 1.83 9719  -48.456  <.0001
 age_group4 - age_group9              1988   -105.1 2.42 9719  -43.495  <.0001
 age_group4 - age_group10             1988   -117.1 3.29 9719  -35.624  <.0001
 age_group4 - age_group11             1988   -132.0 4.97 9719  -26.586  <.0001
 age_group5 - age_group6              1988    -22.9 1.26 9719  -18.079  <.0001
 age_group5 - age_group7              1988    -44.1 1.50 9719  -29.421  <.0001
 age_group5 - age_group8              1988    -63.1 1.87 9719  -33.824  <.0001
 age_group5 - age_group9              1988    -79.6 2.44 9719  -32.566  <.0001
 age_group5 - age_group10             1988    -91.6 3.31 9719  -27.695  <.0001
 age_group5 - age_group11             1988   -106.5 4.98 9719  -21.392  <.0001
 age_group6 - age_group7              1988    -21.2 1.58 9719  -13.406  <.0001
 age_group6 - age_group8              1988    -40.2 1.93 9719  -20.800  <.0001
 age_group6 - age_group9              1988    -56.7 2.50 9719  -22.724  <.0001
 age_group6 - age_group10             1988    -68.8 3.35 9719  -20.543  <.0001
 age_group6 - age_group11             1988    -83.6 5.00 9719  -16.713  <.0001
 age_group7 - age_group8              1988    -19.0 2.09 9719   -9.066  <.0001
 age_group7 - age_group9              1988    -35.5 2.62 9719  -13.532  <.0001
 age_group7 - age_group10             1988    -47.5 3.44 9719  -13.807  <.0001
 age_group7 - age_group11             1988    -62.4 5.07 9719  -12.312  <.0001
 age_group8 - age_group9              1988    -16.5 2.84 9719   -5.795  <.0001
 age_group8 - age_group10             1988    -28.5 3.62 9719   -7.894  <.0001
 age_group8 - age_group11             1988    -43.4 5.19 9719   -8.370  <.0001
 age_group9 - age_group10             1988    -12.1 3.94 9719   -3.058  0.0735
 age_group9 - age_group11             1988    -26.9 5.42 9719   -4.969  0.0001
 age_group10 - age_group11            1988    -14.9 5.86 9719   -2.537  0.2683

P value adjustment: mvt method for 66 tests 
#export tables
# #interpret(eta_squared(perfla.lm), rules = "cohen1992") %>%
#   write.csv(file = "Outputs/Tables/perfla_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
perfla.slopes <- emtrends(perfla.lm, ~age_group, var = "begin_date_year")
# Compare estimated slopes to 0
perfla.slope.contrasts <- test(perfla.slopes) %>% 
  mutate(Species = "Yellow Perch") %>% 
  rename(Age = age_group)

perfla.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/perfla_emmeans.csv")

Plot raw data

(perfla.length.year.plot <- ggplot(data = perfla %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)
`geom_smooth()` using formula = 'y ~ x'

Marginal Effects

result <- predict_response(perfla.lm, c("begin_date_year", "age_group"))

# plot(result)
# test_predictions(result) %>% 
#   write.csv(file = "Outputs/Tables/perfla_pairwise_length_time_slopes.csv", row.names = F)

(perfla.marginal.plot <- ggpredict(perfla.lm, terms = c("begin_date_year", "age_group")) %>%  
    plot()+
    #stat_poly_eq(use_label("eq"))+
    stat_regline_equation()+
    stat_poly_line()+
    # annotate(geom = "text", label = "y = 77 + 0.07x", x = 2000, y = 224)+
    # annotate(geom = "text", label = "y = 21 + 0.093x", x = 2000, y = 212)+
    # annotate(geom = "text", label = "y = -64 + 0.13x", x = 2000, y = 199)+
    # annotate(geom = "text", label = "y = 230 - 0.028x", x = 2000, y = 182)+
    # annotate(geom = "text", label = "y = 610 - 0.23x", x = 2000, y = 160)+
    # annotate(geom = "text", label = "y = 920 - 0.39x", x = 2000, y = 137)+
    # annotate(geom = "text", label = "y = 1200 - 0.55x", x = 2000, y = 110)+
    # annotate(geom = "text", label = "y = 1700 - 0.83x", x = 2000, y = 80)+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(title = NULL,
         y = "Mean Length-at-Age (mm)",
         x = "Year")+
    guides(fill = guide_legend(title = "Age", reverse = T), color = guide_legend(title = "Age", reverse = T))+
    theme_bw()
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/perfla_marginal_effects_plot.tiff", 
       perfla.marginal.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

All species marginal effects plot

all.spp.marginal.effects <- ggarrange(corart.marginal.plot,
                                      oncmyk.marginal.plot,
                                      saltru.marginal.plot,
                                      perfla.marginal.plot,
                                      esoluc.marginal.plot,
                                      sanvit.marginal.plot,
                                      catcom.marginal.plot,
                                      pomnig.marginal.plot,
                                      ambrup.marginal.plot,
                                      micdol.marginal.plot,
                                      lepgib.marginal.plot,
                                      lepmac.marginal.plot,
                                      common.legend = T,
                                      legend = "right")

all.spp.marginal.effects


salmond.marginal.effects <- ggarrange(corart.marginal.plot,
                                      oncmyk.marginal.plot,
                                      saltru.marginal.plot,
                                      ncol = 1,
                                      common.legend = T,
                                      legend = "right")

Synthesis Plots Across Species

Create tibble of slopes of all species size classes

+1
[1] 1

Some summary statistics

#mean slope per thermal guild
mean.mm.yr.thermal.guild <- all.slopes %>% 
  filter(`p-value` == "≤ 0.05") %>% 
  group_by(`Thermal Guild`) %>% 
  summarise(mean_Slope = mean(Slope), mean_Percent = mean(`Percent Change`))

#per species
mean.mm.yr.species <- all.slopes %>% 
  filter(`p-value` == "≤ 0.05") %>% 
  group_by(Species) %>% 
  summarise(mean_Slope = mean(Slope), mean_Percent = mean(`Percent Change`))

mean.mm.yr.species.lifestage <- all.slopes %>% 
  filter(`p-value` == "≤ 0.05") %>% 
  group_by(Species, `Life Stage`) %>% 
  summarise(mean_Slope = mean(Slope), mean_Percent = mean(`Percent Change`))
`summarise()` has grouped output by 'Species'. You can override using the `.groups` argument.
mean.mm.year.life.stage <- all.slopes %>% 
  filter(`p-value` == "≤ 0.05") %>% 
  group_by(`Thermal Guild`, `Life Stage`) %>% 
  summarise(mean_Slope = mean(Slope), mean_Percent = mean(`Percent Change`)) %>% 
  arrange(mean_Slope)
`summarise()` has grouped output by 'Thermal Guild'. You can override using the `.groups` argument.
mean.mm.age <- all.slopes %>% 
  filter(`p-value` == "≤ 0.05") %>% 
  group_by(Age) %>% 
  summarise(mean_Slope = mean(Slope), mean_Percent = mean(`Percent Change`)) %>% 
  arrange(mean_Slope)  
  
#number of species age classes statistically increasing
all.slopes %>% 
  filter(`p-value` == "≤ 0.05") %>% 
  filter(Slope > 0) %>% 
  nrow()
[1] 15
#15

all.slopes %>% 
  #filter(`p-value` == "≤ 0.05") %>% 
  filter(Slope < 0, 
         `Thermal Guild` == "Warm") %>% 
  nrow()
[1] 28
#28

#number of species age classes statistically decreasing
all.slopes %>% 
  filter(`p-value` == "≤ 0.05") %>% 
  filter(Slope < 0) %>% 
  nrow()
[1] 52
#52

##Plot


all.slopes.pc.CI <- all.slopes %>%
  group_by(Species) %>%
  summarize(
    mean = mean(`Percent Change`),
    sd = sd(`Percent Change`),
    n = n(),
    se = sd / sqrt(n),
    ci_lower = mean - qt(0.975, n - 1) * se,
    ci_upper = mean + qt(0.975, n - 1) * se
  )

(
  slopes.all.plot.percent <- ggplot() +
    geom_hline(
      yintercept = 0,
      color = "red",
      linetype = "dashed"
    ) +
    #geom_boxplot(fill = "white", color = "black") +
    geom_errorbar(data = all.slopes.pc.CI,
                  aes(x = Species, ymin = ci_lower, ymax = ci_upper),
                  width = 0.2) +
    geom_point(data = all.slopes.pc.CI, aes(x = Species, y = mean), size = 3) +
    geom_point(
      data = all.slopes ,
      aes(
        x = Species,
        y = `Percent Change`,
        color = `Thermal Guild`,
        fill = `Thermal Guild`,
        shape = `p-value`,
        group = Species
      ),
      size = 2
    ) +
    # scale_x_discrete(limits = c("Cisco", "Rainbow Trout", "Brown Trout", "Black Crappie",
    #                             "Rock Bass", "Walleye", "Yellow Perch", "Northern Pike", "White Sucker",
    #                             "Largemouth Bass", "Smallmouth Bass", "Pumpkinseed Sunfish", "Bluegill"))+
    scale_color_viridis_d() +
    scale_fill_viridis_d() +
    scale_shape_manual(values = c(2, 16)) +
    geom_text_repel(data = all.slopes,
      aes(x = Species, y = `Percent Change`, label = Age),
      show.legend = F,
      max.overlaps = 100,
      max.iter = 100000
    ) +
    # annotate(
    #   geom = "text",
    #   x = 1,
    #   y = 0.9,
    #   label = 0.18,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 2,
    #   y = 0.9,
    #   label = 0.51,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 4,
    #   y = 0.9,
    #   label = -0.23,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 5,
    #   y = 0.9,
    #   label = -0.30,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 6,
    #   y = 0.9,
    #   label = -0.15,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 7,
    #   y = 0.9,
    #   label = -0.16,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 8,
    #   y = 0.9,
    #   label = -0.24,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 9,
    #   y = 0.9,
    #   label = -0.45,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 10,
    #   y = 0.9,
    #   label = -0.32,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 11,
    #   y = 0.9,
    #   label = -0.07,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 12,
    #   y = 0.9,
    #   label = -0.24,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 13,
    #   y = 0.9,
    #   label = -0.21,
    #   size = 3
    # ) +
    labs(y = "Annual Percent Change in Length-at-Age", x = NULL) +
    theme_bw()+
    theme(
      #panel.background = element_rect(fill = "gray"),
      ,
      axis.text.x = element_text(
        angle = 45,
        hjust = 1,
        size = 12
      ),
      axis.text.y = element_text(size = 10),
      axis.title.x = element_text(size = 12)
    )
)

ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/all_slopes_percent_thermal.tiff", 
       slopes.all.plot.percent, 
       dpi = 300, width = 200, height = 150, units = "mm")

Shape by life stage


all.slopes.life.stage.CI <- all.slopes %>%
  group_by(Species, `Life Stage`) %>%
  summarize(
    mean = mean(`Percent Change`),
    sd = sd(`Percent Change`),
    n = n(),
    se = sd / sqrt(n),
    ci_lower = mean - qt(0.975, n - 1) * se,
    ci_upper = mean + qt(0.975, n - 1) * se
  ) %>% 
  mutate(`Life Stage` = fct_rev(`Life Stage`))
Warning: There were 4 warnings in `summarize()`.
The first warning was:
ℹ In argument: `ci_lower = mean - qt(0.975, n - 1) * se`.
ℹ In group 1: `Species = Cisco` `Life Stage = "Adult"`.
Caused by warning in `qt()`:
! NaNs produced
ℹ Run ]8;;ide:run:dplyr::last_dplyr_warnings()dplyr::last_dplyr_warnings()]8;; to see the 3 remaining warnings.
`summarise()` has grouped output by 'Species'. You can override using the `.groups` argument.
(
  slopes.all.plot.percent.life.stage <- ggplot() +
    geom_hline(
      yintercept = 0,
      color = "red",
      linetype = "dashed"
    ) +
    # geom_boxplot(
    #   fill = "white",
    #   color = "black",
    #   outliers = F
    # ) +
    geom_errorbar(
      data = all.slopes.life.stage.CI,
      aes(
        x = Species,
        ymin = ci_lower,
        ymax = ci_upper,
        group = interaction(`Life Stage`, Species)
      ),
      position = position_dodge(width = 0.4),
      width = 0.2
    ) +
    geom_point(data = all.slopes.life.stage.CI,
               aes(
                 x = Species,
                 y = mean,
                 group = interaction(`Life Stage`, Species)
               ),
               position = position_dodge(width = 0.4),
               size = 3) +
    geom_jitter(
      data = all.slopes %>%
        mutate(`Life Stage` = fct_rev(`Life Stage`)),
      aes(
        x = Species,
        y = `Percent Change`,
        color = `Thermal Guild`,
        fill = `Thermal Guild`,
        shape = `p-value`,
        group = interaction(`Life Stage`, Species)
      ),
      position = position_dodge(width = 0.4),
      size = 2
    ) +
    # scale_x_discrete(limits = c("Cisco", "Rainbow Trout", "Brown Trout", "Black Crappie",
    #                             "Rock Bass", "Walleye", "Yellow Perch", "Northern Pike", "White Sucker",
    #                             "Largemouth Bass", "Smallmouth Bass", "Pumpkinseed Sunfish", "Bluegill"))+
    scale_color_viridis_d() +
    scale_fill_viridis_d() +
    scale_shape_manual(values = c(2, 16)) +
    labs(y = "Annual Percent Change in Length-at-Age", x = NULL) +
    # annotate(
    #   geom = "text",
    #   x = 0.75,
    #   y = 0.3,
    #   label = 0.18,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 2,
    #   y = 0.6,
    #   label = 0.51,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 3.75,
    #   y = 0.1,
    #   label = -0.31,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 4.25,
    #   y = 0.2,
    #   label = -0.11,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 4.75,
    #   y = 0.1,
    #   label = -0.26,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 5.25,
    #   y = 0.01,
    #   label = -0.33,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 5.75,
    #   y = 0.15,
    #   label = -0.36,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 6.25,
    #   y = 0.25,
    #   label = -0.10,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 6.75,
    #   y = 0.1,
    #   label = -0.21,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 7.25,
    #   y = 0.2,
    #   label = -0.08,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 7.75,
    #   y = -0.03,
    #   label = -0.24,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 8.75,
    #   y = 0.1,
    #   label = -0.45,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 9.75,
    #   y = 0.15,
    #   label = -0.32,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 10.75,
    #   y = 0.01,
    #   label = -0.54,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 11.25,
    #   y = 0.25,
    #   label = 0.12,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 11.75,
    #   y = -0.03,
    #   label = -0.30,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 12.25,
    #   y = 0.05,
    #   label = -0.17,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 12.75,
    #   y = 0.15,
    #   label = -0.45,
    #   size = 2
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 13.25,
    #   y = 0.25,
    #   label = 0.09,
    #   size = 2
    # ) +
    theme_bw()+
    theme(
      #panel.background = element_rect(fill = "gray"),
      ,
      axis.text.x = element_text(
        angle = 45,
        hjust = 1,
        size = 12
      ),
      axis.text.y = element_text(size = 10),
      axis.title.x = element_text(size = 12)
    )
)

ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/all_slopes_percent_thermal_life_stage.tiff", 
       slopes.all.plot.percent.life.stage, 
       dpi = 300, width = 200, height = 150, units = "mm")

Break adults and juveniles into their own panels Juveniles

(
  slopes.all.plot.percent.juvenile <- ggplot(data = all.slopes.life.stage.CI %>% 
                                                 filter(`Life Stage` == "Juvenile")) +
    geom_hline(
      yintercept = 0,
      color = "red",
      linetype = "dashed"
    ) +
    geom_errorbar(
      aes(
        x = Species,
        ymin = ci_lower,
        ymax = ci_upper,
        group = interaction(`Life Stage`, Species)
      ),
      position = position_dodge(width = 0.4),
      width = 0.2
    ) +
    geom_point(
               aes(
                 x = Species,
                 y = mean,
                 group = interaction(`Life Stage`, Species)
               ),
               position = position_dodge(width = 0.4),
               size = 3) +
    geom_jitter(
      data = all.slopes %>%
        filter(`Life Stage` == "Juvenile"),
      aes(
        x = Species,
        y = `Percent Change`,
        color = `Thermal Guild`,
        fill = `Thermal Guild`,
        shape = `p-value`,
        #group = interaction(`Life Stage`, Species)
      ),
      position = position_dodge(width = 0.4),
      size = 2
    ) +
    scale_color_viridis_d() +
    scale_fill_viridis_d() +
    scale_shape_manual(values = c(2, 16)) +
    labs(y = "Annual Percent Change in Length-at-Age", 
         x = NULL,
         title = "Juveniles") +
    theme_bw()+
    theme(
      #panel.background = element_rect(fill = "gray"),
      ,
      axis.text.x = element_text(
        angle = 45,
        hjust = 1,
        size = 12
      ),
      axis.text.y = element_text(size = 10),
      axis.title.x = element_text(size = 12)
    )
)

Juveniles

(
  slopes.all.plot.percent.adult <- ggplot(data = all.slopes.life.stage.CI %>% 
                                                 filter(`Life Stage` == "Adult")) +
    geom_hline(
      yintercept = 0,
      color = "red",
      linetype = "dashed"
    ) +
    geom_errorbar(
      aes(
        x = Species,
        ymin = ci_lower,
        ymax = ci_upper,
        group = interaction(`Life Stage`, Species)
      ),
      position = position_dodge(width = 0.4),
      width = 0.2
    ) +
    geom_point(
               aes(
                 x = Species,
                 y = mean,
                 group = interaction(`Life Stage`, Species)
               ),
               position = position_dodge(width = 0.4),
               size = 3) +
    geom_jitter(
      data = all.slopes %>%
        filter(`Life Stage` == "Adult"),
      aes(
        x = Species,
        y = `Percent Change`,
        color = `Thermal Guild`,
        fill = `Thermal Guild`,
        shape = `p-value`,
        #group = interaction(`Life Stage`, Species)
      ),
      position = position_dodge(width = 0.4),
      size = 2
    ) +
    scale_color_viridis_d() +
    scale_fill_viridis_d() +
    scale_shape_manual(values = c(2, 16)) +
    labs(y = "Annual Percent Change in Length-at-Age", 
         x = NULL,
         title = "Adults") +
    theme_bw()+
    theme(
      #panel.background = element_rect(fill = "gray"),
      ,
      axis.text.x = element_text(
        angle = 45,
        hjust = 1,
        size = 12
      ),
      axis.text.y = element_text(size = 10),
      axis.title.x = element_text(size = 12)
    )
)

Plot by age class instead of species

all.slopes.age.CI <- all.slopes %>%
  group_by(Age) %>%
  summarize(
    mean = mean(`Percent Change`),
    sd = sd(`Percent Change`),
    n = n(),
    se = sd / sqrt(n),
    ci_lower = mean - qt(0.975, n - 1) * se,
    ci_upper = mean + qt(0.975, n - 1) * se
  ) 

(
  slopes.all.plot.percent.age.class <- ggplot() +
    geom_hline(
      yintercept = 0,
      color = "red",
      linetype = "dashed"
    ) +
    # geom_boxplot(
    #   fill = "white",
    #   color = "black",
    #   outliers = F
    # ) +
    geom_errorbar(
      data = all.slopes.age.CI,
      aes(
        x = Age,
        ymin = ci_lower,
        ymax = ci_upper
      ),
      position = position_dodge(width = 0.4),
      width = 0.2
    ) +
    geom_point(data = all.slopes.age.CI,
               aes(
                 x = Age,
                 y = mean,
               ),
               position = position_dodge(width = 0.4),
               size = 3) +
    geom_jitter(data = all.slopes ,
    aes(
      x = Age,
      y = `Percent Change`,
      color = `Thermal Guild`,
      fill = `Thermal Guild`,
      shape = `p-value`
    ), 
    width = 0.2, 
    size = 2) +
    #geom_text(aes(label = spp_code))+
    # scale_x_discrete(limits = c("Cisco", "Rainbow Trout", "Brown Trout", "Black Crappie",
    #                             "Rock Bass", "Walleye", "Yellow Perch", "Northern Pike", "White Sucker",
    #                             "Largemouth Bass", "Smallmouth Bass", "Pumpkinseed Sunfish", "Bluegill"))+
    scale_color_viridis_d() +
    scale_fill_viridis_d() +
    scale_shape_manual(values = c(2, 16)) +
    labs(y = "Annual Percent Change in Length-at-Age") +
    # annotate(
    #   geom = "text",
    #   x = 1,
    #   y = 0.05,
    #   label = -0.66,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 2,
    #   y = 0.25,
    #   label = -0.57,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 3,
    #   y = 0.5,
    #   label = -0.18,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 4,
    #   y = 0.5,
    #   label = -0.08,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 5,
    #   y = 0.5,
    #   label = 0.04,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 6,
    #   y = 0.5,
    #   label = 0.01,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 7,
    #   y = 0.5,
    #   label = -0.03,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 8,
    #   y = 0.5,
    #   label = -0.09,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 9,
    #   y = 0.5,
    #   label = -0.12,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 10,
    #   y = 0.5,
    #   label = -0.23,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 11,
    #   y = 0.5,
    #   label = -0.21,
    #   size = 3
    # ) +
    # annotate(
    #   geom = "text",
    #   x = 13,
    #   y = 0.5,
    #   label = -0.18,
    #   size = 3
    # ) +
    theme_bw()+
    theme(
      #panel.background = element_rect(fill = "gray"),
      #axis.text.x = element_text(angle = 45, hjust = 1, size = 12),
      axis.text.y = element_text(size = 10),
      axis.title.x = element_text(size = 12)
    )
)

ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/all_slopes_percent_age_class.tiff", 
       slopes.all.plot.percent.age.class, 
       dpi = 300, width = 200, height = 150, units = "mm")

(slopes.all.plot.percent.age.class.spp.facet <- ggplot(data = all.slopes , 
                           aes(x = Age, y = `Percent Change`, 
                               color = `Thermal Guild`, 
                               fill = `Thermal Guild`,
                               shape = `p-value`,
                               group = Age
                               ))+
  geom_hline(yintercept = 0, color = "red", linetype = "dashed")+
  geom_point(size = 2)+
  facet_wrap(~Species)+
  scale_color_viridis_d()+
  scale_fill_viridis_d()+
  scale_shape_manual(values = c(2, 16))+ 
  labs(y = "Annual Percent Change in Length-at-Age")+
  theme_bw()+
  theme(#panel.background = element_rect(fill = "gray"),
        #axis.text.x = element_text(angle = 45, hjust = 1, size = 12),
        axis.text.y = element_text(size = 8), axis.title.x = element_text(size = 10),
        axis.text.x = element_text(size = 8),
        strip.text = element_text(size = 8))
)

ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/all_slopes_percent_age_class_spp_facet.tiff", 
       slopes.all.plot.percent.age.class.spp.facet, 
       dpi = 300, width = 200, height = 150, units = "mm")

Multi-panel figure to include in text that shows trends by species and by age class

age.class.species.multi.panel.plot <- ggarrange(slopes.all.plot.percent.age.class, 
                                                slopes.all.plot.percent.age.class.spp.facet,
                                                slopes.all.plot.percent,
                                                slopes.all.plot.percent.life.stage,
                                                ncol = 2, nrow = 2, 
                                                common.legend = T, legend = "right",
                                                labels = "AUTO", label.x = 0.04)

age.class.species.multi.panel.plot

ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/age_class_species_multi-panel_plot.tiff", 
       age.class.species.multi.panel.plot, 
       dpi = 300, width = 267, height = 200, units = "mm")

Two-panel version

age.class.species.two.panel.plot <- ggarrange(
  slopes.all.plot.percent.age.class,
  slopes.all.plot.percent.life.stage,
  ncol = 1,
  nrow = 2,
  common.legend = T,
  legend = "right",
  labels = "AUTO",
  label.x = 0.03
)

age.class.species.two.panel.plot

ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/age_class_species_two-panel_plot.tiff", 
       age.class.species.two.panel.plot, 
       dpi = 300, width = 200, height = 250, units = "mm")

Model of slopes with FTP

all slopes

Visualize the relationships

#Check assumptions
#linear relationships
(slopes.linear.plot <- ggscatter(data = all.slopes, x = "FTP", y = "Percent Change", color = "Life Stage", add = "reg.line")+
  stat_regline_equation(aes(label =  paste(..eq.label.., ..rr.label.., sep = "~~~~"), color = `Life Stage`))+
  scale_color_viridis_d(end = 0.8)
)


# ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/all_slopes_linear_relationships.tiff", 
#        slopes.linear.plot, 
#        dpi = 300, width = 200, height = 150, units = "mm")

Check assumptions

#homogeneity of regression slopes
anova_test(`Percent Change` ~ FTP*`Life Stage`, data = all.slopes) # not ideal
ANOVA Table (type II tests)

            Effect DFn DFd      F        p p<.05   ges
1              FTP   1 121  5.845 1.70e-02     * 0.046
2     `Life Stage`   1 121 14.296 2.44e-04     * 0.106
3 FTP:`Life Stage`   1 121 18.567 3.36e-05     * 0.133
slopes.model <- lm(`Percent Change` ~ FTP*`Life Stage`, data = all.slopes)
summary(slopes.model)

Call:
lm(formula = `Percent Change` ~ FTP * `Life Stage`, data = all.slopes)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.67369 -0.09492  0.02072  0.11876  0.76197 

Coefficients:
                          Estimate Std. Error t value Pr(>|t|)    
(Intercept)              -0.371961   0.161382  -2.305 0.022879 *  
FTP                       0.012759   0.006545   1.949 0.053578 .  
`Life Stage`Juvenile      0.690630   0.197746   3.493 0.000669 ***
FTP:`Life Stage`Juvenile -0.035534   0.008247  -4.309 3.36e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.2093 on 121 degrees of freedom
Multiple R-squared:  0.2267,    Adjusted R-squared:  0.2075 
F-statistic: 11.82 on 3 and 121 DF,  p-value: 7.605e-07
slopes.model.metric <- augment(slopes.model) 

#normality of residuals
slopes.shapiro <- shapiro_test(slopes.model.metric$.resid)
slopes.shapiro # p < 0.05 
hist(scale(all.slopes$`Percent Change`))


#homogeneity of variances
slopes.levene <- slopes.model.metric %>% levene_test(.resid ~ `Life Stage`)
Warning in leveneTest.default(y = y, group = group, ...) :
  group coerced to factor.
slopes.levene # p = 0.43 => meets assumptions

#outliers
slopes.model.metric %>% 
  filter(abs(.std.resid) > 3) %>%
  as.data.frame() #no outliers

res.aov <- all.slopes %>% anova_test(`Percent Change` ~ FTP + `Life Stage`)
get_anova_table(res.aov)
ANOVA Table (type II tests)

        Effect DFn DFd      F        p p<.05   ges
1          FTP   1 122  5.109 0.026000     * 0.040
2 `Life Stage`   1 122 12.497 0.000577     * 0.093
pwc <- all.slopes %>% 
  rename(life_stage  = `Life Stage`,
         percent_change = `Percent Change`) %>% 
  emmeans_test(
    percent_change ~ life_stage, covariate = FTP,
    p.adjust.method = "bonferonni"
    )
pwc

get_emmeans(pwc)

Visualize pairwise comparisons

# Visualization: line plots with p-values
pwc <- pwc %>% add_xy_position(x = "life_stage", fun = "mean_se")

(slopes.ancova.emmeans.plot <- ggline(get_emmeans(pwc), x = "life_stage", y = "emmean") +
  geom_errorbar(aes(ymin = conf.low, ymax = conf.high), width = 0.2) + 
  stat_pvalue_manual(pwc, hide.ns = TRUE, tip.length = FALSE) +
  labs(
    subtitle = get_test_label(res.aov, detailed = TRUE),
    caption = get_pwc_label(pwc),
    x = "Life Stage", y = "Estimated Marginal Means")
)


# ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/all_slopes_percent_age_class_spp_facet.tiff", 
#        slopes.ancova.emmeans.plot, 
#        dpi = 300, width = 200, height = 150, units = "mm")

Stack plots

all.slopes.ancova.stack <- ggarrange(slopes.linear.plot, slopes.ancova.emmeans.plot,
                                     ncol = 1, nrow  = 2,
                                     labels = "AUTO")

all.slopes.ancova.stack

ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/all_slopes_ancova_stack.tiff", 
       all.slopes.ancova.stack, 
       dpi = 300, width = 200, height = 150, units = "mm")

sig diff from 0 slopes

Visualize the relationship

all.slopes.sig.dif <- all.slopes %>% filter(p.value < 0.05)

#calculate quantiles
all.slopes.sig.dif.quants <- quantile(all.slopes.sig.dif$`Percent Change`, c(0.025, 0.975))

#identify points outside 2.5% and 97.5% quantiles
all.slopes.sig.dif <- all.slopes.sig.dif %>% 
  mutate(Outlier = case_when(
    Slope < -0.8107416 ~ "Below 2.5%",
    Slope > -0.8107416 & Slope < 0.3922495  ~ "Not outliers",
    Slope > 0.3922495  ~ "Above 97.5%"
  ))
#linear relationships
(slopes.sig.dif.linear.plot <- ggscatter(data = all.slopes.sig.dif, 
                                        x = "FTP", y = "Percent Change", 
                                        color = "Life Stage", add = "reg.line"
                                        #, shape = "Outlier"
                                        )+
  stat_regline_equation(aes(label =  paste(..eq.label.., ..rr.label.., sep = "~~~~"), color = `Life Stage`))+
  scale_color_viridis_d(end = 0.8)+
  scale_shape_manual(values = c(1, 2, 19))
)

Check assumptions

#homogeneity of regression slopes
anova_test(`Percent Change` ~ FTP*`Life Stage`, data = all.slopes.sig.dif) # not ideal
ANOVA Table (type II tests)

            Effect DFn DFd      F        p p<.05   ges
1              FTP   1  63  4.917 3.00e-02     * 0.072
2     `Life Stage`   1  63  8.232 6.00e-03     * 0.116
3 FTP:`Life Stage`   1  63 18.016 7.33e-05     * 0.222
slopes.model.sig.dif <- lm(`Percent Change` ~ FTP*`Life Stage`, data = all.slopes.sig.dif)
summary(slopes.model.sig.dif)

Call:
lm(formula = `Percent Change` ~ FTP * `Life Stage`, data = all.slopes.sig.dif)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.61891 -0.14777  0.03025  0.16239  0.70916 

Coefficients:
                         Estimate Std. Error t value Pr(>|t|)    
(Intercept)              -0.66489    0.27257  -2.439 0.017543 *  
FTP                       0.02302    0.01088   2.115 0.038367 *  
`Life Stage`Juvenile      1.21377    0.33301   3.645 0.000543 ***
FTP:`Life Stage`Juvenile -0.05724    0.01349  -4.244 7.33e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.2462 on 63 degrees of freedom
Multiple R-squared:  0.3207,    Adjusted R-squared:  0.2884 
F-statistic: 9.915 on 3 and 63 DF,  p-value: 1.919e-05
slopes.model.metric.sig.dif <- augment(slopes.model.sig.dif) 

#normality of residuals
slopes.shapiro.sig.dif <- shapiro_test(slopes.model.metric.sig.dif$.resid)
slopes.shapiro.sig.dif # p = 0.001 => violates assumptions

#homogeneity of variances
slopes.levene.sig.dif <- slopes.model.metric.sig.dif %>% levene_test(.resid ~ `Life Stage`)
Warning in leveneTest.default(y = y, group = group, ...) :
  group coerced to factor.
slopes.levene.sig.dif # p = 0.17 => meets assumptions

#outliers
slopes.model.metric.sig.dif %>% 
  filter(abs(.std.resid) > 3) %>%
  as.data.frame() #two outliers

res.aov.sig.dif <- all.slopes.sig.dif %>% anova_test(`Percent Change` ~ FTP + `Life Stage`)
get_anova_table(res.aov.sig.dif)
ANOVA Table (type II tests)

        Effect DFn DFd     F     p p<.05   ges
1          FTP   1  64 3.885 0.053       0.057
2 `Life Stage`   1  64 6.503 0.013     * 0.092
pwc.sig.dif <- all.slopes.sig.dif %>% 
  rename(life_stage  = `Life Stage`,
         percent_change = `Percent Change`) %>% 
  emmeans_test(
    percent_change ~ life_stage, covariate = FTP,
    p.adjust.method = "bonferroni"
    )
pwc.sig.dif

get_emmeans(pwc.sig.dif)

Visuallize pairwise comparisons

# Visualization: line plots with p-values
pwc.sig.dif <- pwc.sig.dif %>% add_xy_position(x = "life_stage", fun = "mean_se")
(slopes.sig.dif.ancova.emmeans.plot <- ggline(get_emmeans(pwc.sig.dif), x = "life_stage", y = "emmean") +
  geom_errorbar(aes(ymin = conf.low, ymax = conf.high), width = 0.2) + 
  stat_pvalue_manual(pwc.sig.dif, hide.ns = TRUE, tip.length = FALSE) +
  labs(
    subtitle = get_test_label(res.aov.sig.dif, detailed = TRUE),
    caption = get_pwc_label(pwc.sig.dif),
    x = "Life Stage", y = "Estimated Marginal Means")
)

stack plots

slopes.sig.dif.ancova.stack <- ggarrange(slopes.sig.dif.linear.plot, slopes.sig.dif.ancova.emmeans.plot,
                                     ncol = 1, nrow  = 2,
                                     labels = "AUTO", legend = "right")

slopes.sig.dif.ancova.stack

ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/sig_dif_slopes_ancova_stack.tiff", 
       slopes.sig.dif.ancova.stack, 
       dpi = 300, width = 200, height = 150, units = "mm")

Multi-panel plot for lm and ancova

All species

Model

Filter for target species from age groups that had enough data for a BRT, remove NA rows

#linear model
all.spp.lm <- lm(length_mean_mm ~ begin_date_year*age_group*species + log_max_depth + logarea + doy, 
                 data = grow.merge.target.spp)
summary(all.spp.lm)

options(na.action = "na.omit")
dd <- dredge(all.spp.lm)

#calculate and interpret effect sizes
eta_squared(all.spp.lm)
#interpret(eta_squared(all.spp.lm), rules = "cohen1992")

#calculate AIC score
AIC(all.spp.lm)

#examine model fit
testDispersion(all.spp.lm)

simulation.output <- simulateResiduals(fittedModel = all.spp.lm)

residuals(all.spp.lm)
residuals(all.spp.lm, quantileFunction = qnorm)

plot(all.spp.lm)

Post-hoc comparisons

all.spp.emm <- emmeans(all.spp.lm, ~ begin_date_year*age_group*species)
pairs(all.spp.emm, by = c("species", "age_group", "begin_date_year"))
test(pairs(all.spp.emm, by = c("species", "age_group", "begin_date_year")), by = NULL, adjust = "mvt")

#export tables
#interpret(eta_squared(all.spp.lm), rules = "cohen1992") %>%
  write.csv(file = "Outputs/Tables/all_spp_eta_squared.csv")

#slope contrasts
# Obtain slope estimates
all.spp.slopes <- emtrends(all.spp.lm, ~age_group*species, var = "begin_date_year")
# Compare estimated slopes to 0
all.spp.slope.contrasts <- test(all.spp.slopes) %>% 
  rename(Age = age_group) %>% 
  filter(!is.na(`p.value`))

all.spp.slope.contrasts %>%
  write.csv(file = "Outputs/Tables/all_spp_emmeans.csv")

Plot raw data

(all.spp.length.year.plot <- ggplot(data = grow.merge.target.spp %>% 
                              mutate(Age = as.factor(age_group)), 
                            aes(x = begin_date_year, y = length_mean_mm, 
                                color = Age, fill = Age, group = Age))+
    facet_wrap(~species, scales = "free")+
    #geom_point()+
    geom_smooth(method = "lm")+
    stat_poly_eq(use_label("eq"))+
    scale_color_viridis_d()+
    scale_fill_viridis_d()+
    labs(y = "Length (mm)", x = "Year")+
    theme_bw()
)

Marginal Effects

result <- predict_response(all.spp.lm, c("begin_date_year", "age_group", "species"))

Bayesian model

Building a single model that includes all species using species as a fixed effect

Trouble Shooting

library(cmdstanr)
install_cmdstan()
cmdstan_path()

Model setup

nrow(filter(grow.merge.target.spp, Data_Type == "Historic"))
[1] 54559

Run models

Fit the models

# fit1 <- brm(
#   formula = formula1,
#   data = grow.merge.target.spp,
#   family = gaussian(),      
#   chains = 4,
#   iter = 2000,
#   cores = 4,
#   control = list(adapt_delta = 0.95)
# )

fit2 <- brm(
  formula = formula2,
  data = grow.merge.target.spp,
  family = gaussian(),      
  chains = 4,
  iter = 100000,
  thin = 10,
  cores = 4,
  control = list(adapt_delta = 0.9)
)
Warning: Rows containing NAs were excluded from the model.
Compiling Stan program...
Start sampling
Warning: There were 20000 transitions after warmup that exceeded the maximum treedepth. Increase max_treedepth above 10. See
https://mc-stan.org/misc/warnings.html#maximum-treedepth-exceeded
Warning: Examine the pairs() plot to diagnose sampling problems
# fit3 <- brm(
#   formula = formula3,
#   data = grow.merge.target.spp,
#   family = gaussian(),      
#   chains = 4,
#   iter = 2000,
#   cores = 4,
#   control = list(adapt_delta = 0.95)
# )

Examine results

summary(fit2)
Error in h(simpleError(msg, call)) : 
  error in evaluating the argument 'object' in selecting a method for function 'summary': object 'fit2' not found

Extract random slopes

ranef(fit2)
$species_age_group
, , Intercept

                           Estimate Est.Error         Q2.5       Q97.5
black_crappie.0         -144.089182  638.7384 -1387.107734  1113.64355
bluegill.0               225.940455  584.2351  -918.880199  1369.96282
largemouth_bass.0        849.147913  349.9536   156.498561  1528.53373
northern_pike.0         2921.473753  485.7860  1983.088015  3872.10111
smallmouth_bass.0       -262.785109  613.3290 -1469.730689   939.15875
walleye.0                664.372355  726.2681  -748.892457  2097.47055
yellow_perch.0           780.665217  378.5249    42.878510  1518.45365
black_crappie.1          556.301990  245.4427    79.711363  1039.24879
bluegill.1               886.731732  165.1430   562.703734  1211.44154
brown_trout.1           1482.810018  840.6901  -153.402526  3126.08077
common_white_sucker.1   1041.754057  765.7504  -433.179331  2536.70334
largemouth_bass.1       1555.890243  156.9409  1248.022984  1864.67479
northern_pike.1         2466.006950  179.7469  2112.460378  2815.39729
pumpkinseed_sunfish.1    574.552925  228.6931   122.777289  1024.64382
rainbow_trout.1          -81.114849  490.7823 -1033.508396   897.32771
rock_bass.1              611.113078  470.5594  -307.941290  1525.14159
smallmouth_bass.1       1210.851117  268.6599   679.714773  1738.14040
walleye.1               1557.885753  312.5764   942.607477  2169.26825
yellow_perch.1           774.271377  160.5447   458.809627  1088.85954
black_crappie.2          415.455447  168.5724    86.420311   746.93683
bluegill.2               489.737373  125.7711   242.775090   734.51423
brown_trout.2           1179.716617  595.1059     4.451528  2337.78413
cisco.2                  275.792941  554.9407  -813.127039  1365.55983
common_white_sucker.2   1118.351550  576.3380   -11.728922  2256.18979
largemouth_bass.2       1040.774232  128.7364   788.630500  1293.54227
northern_pike.2         1689.171048  137.8491  1419.799508  1959.23400
pumpkinseed_sunfish.2    152.374571  147.5406  -137.511977   445.65329
rainbow_trout.2        -1939.090415  434.1100 -2794.102787 -1096.64450
rock_bass.2              218.368937  239.5486  -250.052953   686.71349
smallmouth_bass.2        457.468969  212.6033    38.903748   876.83432
walleye.2                484.091898  274.6525   -51.797223  1016.68312
yellow_perch.2           699.829639  125.8933   450.357073   945.52342
black_crappie.3          103.820618  166.5711  -225.477793   430.18219
bluegill.3               281.776869  114.4683    56.406483   506.01091
brown_trout.3            462.818427  563.2304  -620.182954  1570.27323
cisco.3                  416.958750  483.1436  -539.950313  1354.95321
common_white_sucker.3   2473.773601  461.1999  1567.650854  3386.25544
largemouth_bass.3        801.654050  122.2244   563.897931  1042.43975
northern_pike.3         1187.806712  138.9134   914.343028  1461.62960
pumpkinseed_sunfish.3   -280.432354  127.2882  -532.094741   -31.86330
rainbow_trout.3        -2056.890451  491.0814 -3023.823787 -1091.06724
rock_bass.3              -43.294233  197.4814  -431.228567   340.72510
smallmouth_bass.3         14.249673  203.4099  -381.385505   412.90735
walleye.3                -52.201766  261.4630  -566.761870   464.02996
yellow_perch.3           305.194766  115.6495    79.883486   529.25827
black_crappie.4         -182.015600  178.7491  -531.575721   165.22811
bluegill.4               -30.523436  117.6359  -258.600360   200.52616
brown_trout.4            -89.569583  696.7158 -1447.547143  1284.21497
cisco.4                  397.779742  415.2899  -420.028617  1214.94531
common_white_sucker.4   2262.543582  485.8215  1309.453819  3206.40571
largemouth_bass.4        650.241793  135.3274   387.898565   911.01444
northern_pike.4         2092.195638  152.7314  1793.754209  2390.23573
pumpkinseed_sunfish.4   -553.614841  133.4737  -812.985666  -290.84013
rainbow_trout.4        -4684.820657  695.6058 -6067.909614 -3329.49056
rock_bass.4             -198.785743  188.5975  -570.520307   167.78864
smallmouth_bass.4       -270.332629  222.7403  -707.497882   166.21583
walleye.4               -356.499432  271.4621  -890.228802   169.13600
yellow_perch.4           158.248832  122.5541   -78.776982   398.19497
black_crappie.5         -473.336043  204.1047  -879.093034   -76.88918
bluegill.5              -408.174345  129.5233  -662.731367  -153.96719
brown_trout.5            992.678232  811.9658  -595.597184  2592.72489
cisco.5                 -732.703860  506.9795 -1716.111004   272.51232
common_white_sucker.5   1644.435939  568.7038   527.339980  2761.65104
largemouth_bass.5        793.704307  155.7550   488.196260  1094.94047
northern_pike.5         3049.974222  171.0861  2714.140445  3383.49960
pumpkinseed_sunfish.5   -694.894672  150.7967  -986.759742  -395.21878
rock_bass.5             -162.387011  200.3897  -557.272358   235.15874
smallmouth_bass.5       -264.919062  253.6156  -757.785254   236.77493
walleye.5               -156.896976  272.1406  -697.600525   374.24946
yellow_perch.5           316.623533  138.2931    47.707822   588.38534
black_crappie.6         -320.362204  230.1914  -768.175586   134.31778
bluegill.6              -653.418620  142.2809  -931.181756  -371.80626
cisco.6                  137.422445  469.9266  -785.161363  1049.84849
largemouth_bass.6       1257.958215  179.0514   907.226406  1608.49561
northern_pike.6         4456.992787  197.6461  4068.084075  4841.26874
pumpkinseed_sunfish.6   -671.938880  187.2714 -1035.476866  -304.72401
rock_bass.6             -345.460935  224.1703  -786.455399    93.91406
smallmouth_bass.6       -199.847700  278.9669  -744.042852   346.02901
walleye.6               -629.966272  281.0352 -1175.161590   -76.54421
yellow_perch.6           482.393824  166.0884   154.855029   805.16543
black_crappie.7           17.441843  300.0642  -571.542886   604.22254
bluegill.7              -534.000799  171.3317  -865.126435  -195.79265
cisco.7                  711.497865  667.0898  -589.233258  2032.43046
largemouth_bass.7       1761.971087  209.5673  1354.604768  2172.00033
northern_pike.7         5909.833142  255.5673  5407.670399  6407.28676
pumpkinseed_sunfish.7   -802.594109  242.7162 -1273.594378  -324.02534
rock_bass.7              -55.715033  246.3705  -541.095367   426.91718
smallmouth_bass.7        392.185383  317.6473  -230.651841  1011.24506
walleye.7                 -4.971035  290.2358  -576.084789   563.66314
yellow_perch.7           792.872786  218.3163   371.107175  1221.06614
black_crappie.8          388.956274  393.7067  -373.630516  1165.63410
bluegill.8              -426.319974  234.6138  -884.904756    38.16233
largemouth_bass.8       1869.228038  255.1356  1371.013460  2375.46349
northern_pike.8         8294.624422  342.1700  7617.534732  8961.37807
pumpkinseed_sunfish.8   -698.229419  377.4960 -1439.861147    49.31636
rock_bass.8             -136.981185  288.0555  -697.801540   433.39323
smallmouth_bass.8         30.575449  361.2364  -685.270261   738.45445
walleye.8                769.967036  315.2162   163.203193  1401.71043
yellow_perch.8           175.284445  293.1095  -401.928979   745.99635
black_crappie.9          684.459394  518.3615  -335.595249  1685.33052
bluegill.9              -248.904148  331.6501  -897.872184   397.94251
largemouth_bass.9       1895.095408  309.8320  1292.310760  2505.17505
northern_pike.9         7739.649448  532.2071  6688.692032  8787.84237
pumpkinseed_sunfish.9   -330.147277  519.0587 -1352.860781   687.23385
rock_bass.9              -45.053177  362.2742  -753.585514   664.96589
smallmouth_bass.9        227.827798  459.4470  -672.851619  1142.68869
walleye.9               1180.328195  360.2989   469.359150  1875.39007
yellow_perch.9           126.281680  391.7756  -635.863129   897.80298
black_crappie.10        1150.579207  689.7317  -213.480768  2504.48369
bluegill.10             -158.166543  436.0190 -1012.444963   688.97023
largemouth_bass.10      1547.858728  371.7113   818.271385  2271.01693
northern_pike.10        4805.170228  684.1840  3462.249458  6122.81388
pumpkinseed_sunfish.10  -628.084116  820.5326 -2242.956220   962.73702
rock_bass.10             390.243876  462.8510  -516.464214  1288.45504
smallmouth_bass.10       911.017336  576.5210  -212.919063  2037.68450
walleye.10              2269.468425  399.4602  1495.546409  3058.41412
yellow_perch.10          512.749157  545.6074  -556.808125  1579.99778
black_crappie.11         486.190683  886.0174 -1234.754952  2227.38998
bluegill.11               69.129459  624.5064 -1151.063754  1281.94064
largemouth_bass.11      1270.362801  514.4399   262.132884  2281.55322
rock_bass.11             494.957187  678.6441  -819.565939  1838.27284
walleye.11              1146.695342  525.4429   119.511399  2177.58594
yellow_perch.11           51.887550  727.6435 -1382.430537  1486.62755
largemouth_bass.12      1486.914170  652.9372   204.350857  2763.33264
walleye.12              2148.078612  640.0154   891.566761  3391.79491

, , begin_date_year

                            Estimate  Est.Error        Q2.5        Q97.5
black_crappie.0        -0.0268130166 0.32213471 -0.66141913  0.599456001
bluegill.0             -0.2303325771 0.29430122 -0.80651547  0.346418369
largemouth_bass.0      -0.5301963154 0.17648684 -0.87201979 -0.180482967
northern_pike.0        -1.4897675182 0.24554639 -1.97129157 -1.016153309
smallmouth_bass.0       0.0328625783 0.30956785 -0.57443036  0.641191992
walleye.0              -0.3908290365 0.36513146 -1.11225388  0.320294202
yellow_perch.0         -0.4985324453 0.19081099 -0.87115750 -0.125109003
black_crappie.1        -0.3601021888 0.12360447 -0.60328746 -0.119732753
bluegill.1             -0.5507831656 0.08255629 -0.71253340 -0.388578248
brown_trout.1          -0.7750647337 0.42137241 -1.59881091  0.041797376
common_white_sucker.1  -0.5734823572 0.38690284 -1.32708891  0.172147802
largemouth_bass.1      -0.8543376196 0.07854884 -1.00886693 -0.700684895
northern_pike.1        -1.2004706422 0.09031330 -1.37546704 -1.022625709
pumpkinseed_sunfish.1  -0.3920737340 0.11481953 -0.61718358 -0.165815535
rainbow_trout.1         0.0270117280 0.24677073 -0.46290103  0.505739356
rock_bass.1            -0.4104498369 0.23583337 -0.86920144  0.050718436
smallmouth_bass.1      -0.6807835966 0.13466554 -0.94517339 -0.413694965
walleye.1              -0.8060639452 0.15674099 -1.11196163 -0.498191853
yellow_perch.1         -0.4779157810 0.08045708 -0.63529777 -0.319752668
black_crappie.2        -0.2664508142 0.08432937 -0.43241808 -0.101285696
bluegill.2             -0.3357371985 0.06284574 -0.45829429 -0.212709852
brown_trout.2          -0.5743597464 0.29928608 -1.15866879  0.015621326
cisco.2                -0.1595842545 0.28064675 -0.71075090  0.391101540
common_white_sucker.2  -0.5587727777 0.29134928 -1.13397629  0.012730290
largemouth_bass.2      -0.5622751156 0.06430585 -0.68952296 -0.437314606
northern_pike.2        -0.7520124803 0.06888506 -0.88705371 -0.617746894
pumpkinseed_sunfish.2  -0.1651707839 0.07385570 -0.31207291 -0.020824029
rainbow_trout.2         1.0030915096 0.21860851  0.57740416  1.433950350
rock_bass.2            -0.1983355313 0.11989966 -0.43285760  0.037288042
smallmouth_bass.2      -0.2673679470 0.10647649 -0.47621177 -0.057388325
walleye.2              -0.2233647433 0.13755599 -0.49076709  0.045041258
yellow_perch.2         -0.4212779923 0.06281152 -0.54361561 -0.296997887
black_crappie.3        -0.0910358906 0.08333621 -0.25462995  0.074749332
bluegill.3             -0.2170262115 0.05702822 -0.32818498 -0.105424273
brown_trout.3          -0.1687854537 0.28332619 -0.72584974  0.375933976
cisco.3                -0.2148422668 0.24444496 -0.69213444  0.268038748
common_white_sucker.3  -1.2067739355 0.23287356 -1.66743256 -0.747241003
largemouth_bass.3      -0.4141870699 0.06092917 -0.53334093 -0.295725754
northern_pike.3        -0.4625473700 0.06934280 -0.59844652 -0.325580412
pumpkinseed_sunfish.3   0.0658382826 0.06356907 -0.05857309  0.190737297
rainbow_trout.3         1.1033714160 0.24742486  0.61911472  1.590622191
rock_bass.3            -0.0513187289 0.09867511 -0.24351918  0.142121365
smallmouth_bass.3      -0.0135919100 0.10180860 -0.21370836  0.184483078
walleye.3               0.0757517613 0.13090692 -0.18211010  0.333807755
yellow_perch.3         -0.2084820464 0.05763075 -0.32067799 -0.096049922
black_crappie.4         0.0665846469 0.08934869 -0.10807364  0.242069013
bluegill.4             -0.0477697776 0.05872977 -0.16269918  0.066644493
brown_trout.4           0.1412664884 0.35056957 -0.55233535  0.821643117
cisco.4                -0.1870994888 0.20948964 -0.60067049  0.224555449
common_white_sucker.4  -1.0711599529 0.24536989 -1.54748151 -0.589784191
largemouth_bass.4      -0.3160776993 0.06754432 -0.44758473 -0.185353539
northern_pike.4        -0.8854212902 0.07630395 -1.03494134 -0.736220329
pumpkinseed_sunfish.4   0.2140674369 0.06662513  0.08198739  0.343878920
rainbow_trout.4         2.4727155070 0.34964304  1.79467341  3.168137250
rock_bass.4             0.0405907991 0.09440395 -0.14397483  0.225414353
smallmouth_bass.4       0.1575167132 0.11145409 -0.06054390  0.376451649
walleye.4               0.2541209243 0.13592016 -0.01134701  0.519651228
yellow_perch.4         -0.1216950256 0.06120881 -0.24103480 -0.002238420
black_crappie.5         0.2223443571 0.10202935  0.02430333  0.425409820
bluegill.5              0.1521626523 0.06452025  0.02595488  0.279019001
brown_trout.5          -0.3743106463 0.40865402 -1.18017246  0.427824756
cisco.5                 0.3991568552 0.25593689 -0.10777346  0.894949562
common_white_sucker.5  -0.7484086265 0.28674849 -1.31157931 -0.182858012
largemouth_bass.5      -0.3694153277 0.07769749 -0.52006717 -0.216989292
northern_pike.5        -1.3390438488 0.08544773 -1.50658932 -1.172211828
pumpkinseed_sunfish.5   0.2936920682 0.07536018  0.14420080  0.439665979
rock_bass.5             0.0344124715 0.10020034 -0.16451450  0.232986987
smallmouth_bass.5       0.1761328226 0.12685604 -0.07473521  0.423028826
walleye.5               0.1734673095 0.13621387 -0.09235623  0.442616308
yellow_perch.5         -0.1886396117 0.06909030 -0.32322019 -0.054037251
black_crappie.6         0.1547843635 0.11507681 -0.07283975  0.379902968
bluegill.6              0.2833915322 0.07110765  0.14280029  0.422082633
cisco.6                -0.0322542214 0.23691067 -0.49414978  0.430071991
largemouth_bass.6      -0.5860129718 0.08940742 -0.76133491 -0.411721836
northern_pike.6        -2.0190927101 0.09887638 -2.21075313 -1.824944721
pumpkinseed_sunfish.6   0.2885733386 0.09367018  0.10370459  0.471064218
rock_bass.6             0.1368777378 0.11209198 -0.08332060  0.356936286
smallmouth_bass.6       0.1601575487 0.13955472 -0.11315560  0.432453459
walleye.6               0.4297976392 0.14082504  0.15367226  0.702440745
yellow_perch.6         -0.2607549180 0.08308978 -0.42347884 -0.096255278
black_crappie.7        -0.0070173946 0.15000504 -0.30127420  0.287623233
bluegill.7              0.2297059940 0.08559014  0.06117786  0.395236674
cisco.7                -0.3102679195 0.33640952 -0.97748777  0.344713811
largemouth_bass.7      -0.8223865373 0.10471996 -1.02770950 -0.617131967
northern_pike.7        -2.7255740302 0.12777386 -2.97451883 -2.473802147
pumpkinseed_sunfish.7   0.3595281465 0.12132415  0.12138358  0.595654004
rock_bass.7             0.0007047573 0.12330057 -0.24129464  0.242997197
smallmouth_bass.7      -0.1238889287 0.15889175 -0.43387043  0.187158552
walleye.7               0.1297975912 0.14520470 -0.15489875  0.416282927
yellow_perch.7         -0.4063905086 0.10947299 -0.62220064 -0.194948967
black_crappie.8        -0.1859175805 0.19663467 -0.57482994  0.195200190
bluegill.8              0.1812253753 0.11733926 -0.05079954  0.411626179
largemouth_bass.8      -0.8613915377 0.12747291 -1.11515038 -0.613193434
northern_pike.8        -3.8914098178 0.17128008 -4.22471414 -3.553783275
pumpkinseed_sunfish.8   0.3134020500 0.18851912 -0.05897299  0.682531097
rock_bass.8             0.0495018973 0.14400649 -0.23752051  0.329899404
smallmouth_bass.8       0.0680154686 0.18068073 -0.28553566  0.426142466
walleye.8              -0.2473482023 0.15773698 -0.56364802  0.057019318
yellow_perch.8         -0.0864163859 0.14708176 -0.37295145  0.201792200
black_crappie.9        -0.3282020194 0.25898891 -0.83126126  0.181819582
bluegill.9              0.0979814629 0.16587652 -0.22811870  0.422999732
largemouth_bass.9      -0.8610616872 0.15473195 -1.16514113 -0.560429884
northern_pike.9        -3.5757169719 0.26611960 -4.10010427 -3.052355887
pumpkinseed_sunfish.9   0.1330339428 0.25935407 -0.37620322  0.645221534
rock_bass.9             0.0099022375 0.18111232 -0.34385256  0.365395603
smallmouth_bass.9      -0.0208050660 0.22967948 -0.47773643  0.429490917
walleye.9              -0.4462175260 0.18031039 -0.79409725 -0.090545457
yellow_perch.9         -0.0538776033 0.19661145 -0.43824694  0.328120007
black_crappie.10       -0.5555214737 0.34446183 -1.23103366  0.124782807
bluegill.10             0.0568219599 0.21807300 -0.36717696  0.485060764
largemouth_bass.10     -0.6791599196 0.18567099 -1.03914489 -0.313915124
northern_pike.10       -2.1004939926 0.34143913 -2.75867434 -1.429779572
pumpkinseed_sunfish.10  0.2853897637 0.40980286 -0.51083152  1.092948478
rock_bass.10           -0.2029087384 0.23128540 -0.65027663  0.248968657
smallmouth_bass.10     -0.3546589703 0.28807945 -0.91921677  0.207057706
walleye.10             -0.9827839993 0.19992027 -1.37663490 -0.594750086
yellow_perch.10        -0.2422374037 0.27371845 -0.77956659  0.295227374
black_crappie.11       -0.2165859135 0.44150258 -1.08879638  0.642019236
bluegill.11            -0.0511108894 0.31262472 -0.66049358  0.560044087
largemouth_bass.11     -0.5324798886 0.25675071 -1.03769306 -0.028235838
rock_bass.11           -0.2509827834 0.33883798 -0.92308532  0.408703556
walleye.11             -0.4163508285 0.26287399 -0.93272577  0.096730612
yellow_perch.11        -0.0032169089 0.36515496 -0.72188946  0.717234383
largemouth_bass.12     -0.6377584224 0.32585223 -1.27659204  0.001110146
walleye.12             -0.9083114283 0.31930452 -1.52827874 -0.282789686
#Use this chunk if you don't have the model saved in your environment and are reading back in the output that was previously written out to excel
group_effects <- read.xlsx("~/GitHub/EAGER_growth/Outputs/Tables/bayesian_model_output.xlsx", 2)
head(group_effects) 


# Get posterior means for each group's slope
slopes <- as.data.frame(group_effects) %>% 
  rename_with(~str_remove(.x, "species_age_group.")) %>% 
  #rename columns to facilitate plotting
  rename(species_age_group = X1,
         slope_bayes = Estimate.begin_date_year,
         lower_bayes = Q2.5.begin_date_year,
         upper_bayes = Q97.5.begin_date_year) %>% 
  #split species_age_group into species and age_group for plotting
  separate(species_age_group, into = c("species", "age_group"), sep = "\\.") %>% 
  #fix age_group order to be numeric
  mutate(age_group = factor(age_group, levels = sort(as.numeric(unique(age_group))))) %>% 
  #change species names to remove _
  mutate(species = species %>% 
           str_replace_all("_", " ") %>% 
           str_to_title()) %>% 
  #rename age_group to make plot cleaner
  rename(Age = age_group, Species = species) %>% 
  #join with frequentist output
  left_join(all.slopes %>% 
            mutate(Species = if_else(Species == "White Sucker", "Common White Sucker", Species)), 
            by = c("Species", "Age")) %>% 
  #reorder Species by FTP for plotting
  mutate(Species = fct_reorder(Species, FTP)) %>% 
  #create percent change column for Bayes slopes
  mutate(`Bayes Percent Change` = slope_bayes/mean_length*100,
         bayes_pc_lower = lower_bayes/mean_length*100,
         bayes_pc_upper = upper_bayes/mean_length*100,
  #create column for if credibilty interval overlaps with 0
         `Statistically Different` = if_else(lower_bayes > 0 | upper_bayes < 0, "Different from 0", "Overlaps 0")
  )

Export output after joining with frequentist output

write.csv(slopes, "~/GitHub/EAGER_growth/Outputs/Tables/bayes_all_slopes.csv", row.names = F)

Summarize by species life stage

slopes.age <- slopes %>% 
  group_by(Age) %>% 
  summarize(mean_slope = mean(slope_bayes), sd_slope = sd(slope_bayes),
            mean_pc = mean(`Bayes Percent Change`), sd_pc  = sd(`Bayes Percent Change`)) %>% 
  pivot_wider(names_from = `Life Stage`, 
              values_from = c(mean_slope, sd_slope, mean_pc, sd_pc)) %>% 
  select(Species, contains("Juvenile"), contains("Adult"))
Error in `pivot_wider()`:
! Can't select columns that don't exist.
✖ Column `Life Stage` doesn't exist.
Run `]8;;x-r-run:rlang::last_trace()rlang::last_trace()]8;;` to see where the error occurred.

Custom plots

Percent change by age class facet by species


thermal.guild.colors <- c("#4662D7FF", "#1AE4B6FF", "#CB2A04FF")

(fit2.species.age.groups.plot <- ggplot(slopes, aes(x = Age, y = `Bayes Percent Change`, 
                                                    color = `Thermal Guild`, fill = `Statistically Different`,
                                                    shape = `Statistically Different`)) +
  facet_wrap(~Species)+
  geom_hline(yintercept = 0, color = "red", linetype = "dashed")+
  geom_point(position=position_dodge(width=0.5), size=0.5) +
  geom_errorbar(aes(ymin=bayes_pc_lower, ymax=bayes_pc_upper),
                width=0.2, position=position_dodge(width=0.5), alpha = 0.5) +
  scale_color_manual(values = thermal.guild.colors)+
  scale_shape_manual(values = c(19, 2))+
  labs(
    y = "Annual percent change relative to mean length (mm/yr)"
  ) +
  theme_bw()+
  theme(strip.text = element_text(size = 8))
)

ggsave(
  ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/bayes_all_slopes_percent_age_class_spp_facet.tiff", 
       fit2.species.age.groups.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")
)

Species on x-axis with age labels

bayes.all.slopes.pc.CI <- slopes %>%
  group_by(Species) %>%
  summarize(
    mean = mean(`Percent Change`),
    sd = sd(`Percent Change`),
    n = n(),
    se = sd / sqrt(n),
    ci_lower = mean - qt(0.975, n - 1) * se,
    ci_upper = mean + qt(0.975, n - 1) * se
  )

(
  bayes.slopes.all.plot.percent <- ggplot() +
    geom_hline(
      yintercept = 0,
      color = "red",
      linetype = "dashed"
    ) +
    geom_errorbar(data = bayes.all.slopes.pc.CI,
                  aes(x = Species, ymin = ci_lower, ymax = ci_upper),
                  width = 0.2) +
    geom_point(data = all.slopes.pc.CI, aes(x = Species, y = mean), size = 3) +
    geom_point(
      data = slopes ,
      aes(
        x = Species,
        y = `Percent Change`,
        color = `Thermal Guild`,
        fill = `Thermal Guild`,
        shape = `Statistically Different`,
        group = Species
      ),
      size = 2
    ) +
    scale_color_manual(values = thermal.guild.colors) +
    scale_fill_manual(values = thermal.guild.colors) +
    scale_shape_manual(values = c(2, 16)) +
    geom_text_repel(data = slopes,
      aes(x = Species, y = `Percent Change`, label = Age),
      show.legend = F,
      max.overlaps = 100,
      max.iter = 100000
    ) +
    labs(y = "Annual Percent Change in Length-at-Age", x = NULL) +
    theme_bw()+
    theme(
      #panel.background = element_rect(fill = "gray"),
      ,
      axis.text.x = element_text(
        angle = 45,
        hjust = 1,
        size = 12
      ),
      axis.text.y = element_text(size = 10),
      axis.title.x = element_text(size = 12)
    )
)

ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/bayes_slopes_percent_thermal.tiff", 
       bayes.slopes.all.plot.percent, 
       dpi = 300, width = 200, height = 150, units = "mm")

Plot by species no facet

bayes.all.slopes.CI <- slopes %>%
  group_by(Species) %>%
  summarize(
    mean = mean(slope_bayes),
    sd = sd(slope_bayes),
    n = n(),
    se = sd / sqrt(n),
    ci_lower = mean - qt(0.975, n - 1) * se,
    ci_upper = mean + qt(0.975, n - 1) * se
  )

(
  bayes.slopes.all.plot <- ggplot() +
    geom_hline(
      yintercept = 0,
      color = "red",
      linetype = "dashed"
    ) +
    geom_errorbar(
      data = bayes.all.slopes.CI,
      aes(x = Species, ymin = ci_lower, ymax = ci_upper),
      width = 0.2
    ) +
    geom_point(data = bayes.all.slopes.CI, aes(x = Species, y = mean), size = 3) +
    geom_jitter(
      data = slopes,
      aes(
        x = Species,
        y = Slope,
        color = `Thermal Guild`,
        fill = `Thermal Guild`,
        shape = `Statistically Different`,
        group = Species
      ),
      size = 2,
      width = 0.2
    ) +
    scale_color_manual(values = thermal.guild.colors) +
    scale_fill_manual(values = thermal.guild.colors) +
    scale_shape_manual(values = c(19, 2)) +
    labs(y = "Change in Length-at-Age (mm/yr)", x = NULL) +
    theme_bw()+
    theme(
      #panel.background = element_rect(fill = "gray"),
      axis.text.x = element_text(angle = 45, hjust = 1, size = 12),
      axis.text.y = element_text(size = 10),
      axis.title.x = element_text(size = 12)
    )
)

ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/bayes_all_slopes_species.tiff", 
       bayes.slopes.all.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

Plot by age no facet

bayes.all.slopes.age.CI <- slopes %>%
  group_by(Age) %>%
  summarize(
    mean = mean(`Bayes Percent Change`),
    sd = sd(`Bayes Percent Change`),
    n = n(),
    se = sd / sqrt(n),
    ci_lower = mean - qt(0.975, n - 1) * se,
    ci_upper = mean + qt(0.975, n - 1) * se
  )

(
  bayes.slopes.all.age.percent.change.plot <- ggplot() +
    geom_hline(
      yintercept = 0,
      color = "red",
      linetype = "dashed"
    ) +
    geom_errorbar(
      data = bayes.all.slopes.age.CI,
      aes(x = Age, ymin = ci_lower, ymax = ci_upper),
      width = 0.2
    ) +
    geom_point(data = bayes.all.slopes.age.CI, aes(x = Age, y = mean), size = 3) +
    geom_jitter(
      data = slopes,
      aes(
        x = Age,
        y = `Bayes Percent Change`,
        color = `Thermal Guild`,
        fill = `Thermal Guild`,
        shape = `Statistically Different`,
        group = Species
      ),
      size = 2,
      width = 0.2
    ) +
    scale_color_manual(values = thermal.guild.colors) +
    scale_fill_manual(values = thermal.guild.colors) +
    scale_shape_manual(values = c(19, 2)) +
    labs(y = "Percent Change", x = NULL) +
    theme_bw()+
    theme(
      #panel.background = element_rect(fill = "gray"),
      #axis.text.x = element_text(angle = 45, hjust = 1, size = 12),
      axis.text.y = element_text(size = 10),
      axis.title.x = element_text(size = 12)
    )
)

ggsave(filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/bayes_all_slopes_age_percent_change.tiff", 
       bayes.slopes.all.age.percent.change.plot, 
       dpi = 300, width = 200, height = 150, units = "mm")

Break adults and juveniles into their own plots

Juveniles

bayes.all.slopes.life.stage.CI <- slopes %>%
  #rename(`Life Stage` = life_stage) %>% 
  group_by(Species, `Life Stage`) %>%
  summarize(
    mean = mean(`Bayes Percent Change`),
    sd = sd(`Bayes Percent Change`),
    n = n(),
    se = sd / sqrt(n),
    ci_lower = mean - qt(0.975, n - 1) * se,
    ci_upper = mean + qt(0.975, n - 1) * se
  )%>% 
  mutate(`Life Stage` = fct_rev(`Life Stage`))


(
  bayes.slopes.all.plot.percent.juvenile <- ggplot(data = bayes.all.slopes.life.stage.CI %>% 
                                                     filter(`Life Stage` == "Juvenile")) +
    geom_hline(
      yintercept = 0,
      color = "red",
      linetype = "dashed"
    ) +
    geom_errorbar(
      aes(
        x = Species,
        ymin = ci_lower,
        ymax = ci_upper,
        group = interaction(`Life Stage`, Species)
      ),
      position = position_dodge(width = 0.4),
      width = 0.2
    ) +
    geom_point(
               aes(
                 x = Species,
                 y = mean,
                 group = interaction(`Life Stage`, Species)
               ),
               position = position_dodge(width = 0.4),
               size = 3) +
    geom_jitter(
      data = slopes %>%
        filter(`Life Stage` == "Juvenile"),
      aes(
        x = Species,
        y = `Bayes Percent Change`,
        color = `Thermal Guild`,
        fill = `Thermal Guild`,
        shape = `Statistically Different`,
        #group = interaction(`Life Stage`, Species)
      ),
      position = position_dodge(width = 0.4),
      size = 2
    ) +
    scale_color_manual(values = thermal.guild.colors) +
    scale_fill_manual(values = thermal.guild.colors) +
    scale_shape_manual(values = c(19, 2)) +
    labs(y = "Percent Change", 
         x = NULL,
         title = "Juveniles") +
    theme_bw()+
    theme(
      #panel.background = element_rect(fill = "gray"),
      ,
      axis.text.x = element_text(
        angle = 45,
        hjust = 1,
        size = 12
      ),
      axis.text.y = element_text(size = 10),
      axis.title.x = element_text(size = 12)
    )
)

Adults

(
  bayes.slopes.all.plot.percent.adult <- ggplot(data = bayes.all.slopes.life.stage.CI %>% 
                                                 filter(`Life Stage` == "Adult")) +
    geom_hline(
      yintercept = 0,
      color = "red",
      linetype = "dashed"
    ) +
    geom_errorbar(
      aes(
        x = Species,
        ymin = ci_lower,
        ymax = ci_upper,
        group = interaction(`Life Stage`, Species)
      ),
      position = position_dodge(width = 0.4),
      width = 0.2
    ) +
    geom_point(
               aes(
                 x = Species,
                 y = mean,
                 group = interaction(`Life Stage`, Species)
               ),
               position = position_dodge(width = 0.4),
               size = 3) +
    geom_jitter(
      data = slopes %>%
        filter(`Life Stage` == "Adult"),
      aes(
        x = Species,
        y = `Bayes Percent Change`,
        color = `Thermal Guild`,
        fill = `Thermal Guild`,
        shape = `Statistically Different`,
        #group = interaction(`Life Stage`, Species)
      ),
      position = position_dodge(width = 0.4),
      size = 2
    ) +
    scale_color_manual(values = thermal.guild.colors) +
    scale_fill_manual(values = thermal.guild.colors) +
    scale_shape_manual(values = c(19, 2)) +
    labs(y = "Percent Change", 
         x = NULL,
         title = "Adults") +
    theme_bw()+
    theme(
      #panel.background = element_rect(fill = "gray"),
      ,
      axis.text.x = element_text(
        angle = 45,
        hjust = 1,
        size = 12
      ),
      axis.text.y = element_text(size = 10),
      axis.title.x = element_text(size = 12)
    )
)

Model slopes w/ FTP and Life Stage

###Visualize Relationships

(
  bayes.slopes.linear.plot <- ggscatter(
    data = slopes,
    x = "FTP",
    y = "Bayes Percent Change",
    color = "Life Stage",
    add = "reg.line",
    alpha = 0.5
  ) +
    stat_regline_equation(aes(
      label =  paste(..eq.label.., ..rr.label.., sep = "~~~~"),
      color = `Life Stage`
    ), size = 2.5, label.y.npc = "bottom") +
    scale_color_viridis_d(end = 0.9, option = "C") +
    labs(y = "Percent Change") +
    theme(text = element_text(size = 12))
)

ggsave(
  filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/bayes_ftp_life_stage_slopes_raw_data.tiff",
  bayes.slopes.linear.plot,
  width = 200,
  height = 150,
  units = "mm",
  dpi = 300
)


(
  bayes.slopes.linear.plot.remove.spp <- ggscatter(
    data = slopes %>%
      filter(!Species %in% c("Rainbow Trout", "Northern Pike")),
    x = "FTP",
    y = "Bayes Percent Change",
    color = "Life Stage",
    add = "reg.line",
    alpha = 0.5
  ) +
    stat_regline_equation(aes(
      label =  paste(..eq.label.., ..rr.label.., sep = "~~~~"),
      color = `Life Stage`
    ), size = 2.5, label.y.npc = "bottom") +
    scale_color_viridis_d(end = 0.9, option = "C") +
    labs(y = "Percent Change")+
    theme(text = element_text(size = 12))
)

ggsave(
  filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/bayes_ftp_life_stage_slopes_raw_data_spp_removed.tiff",
  bayes.slopes.linear.plot.remove.spp,
  width = 200,
  height = 150,
  units = "mm",
  dpi = 300
)



(bayes.slopes.boxplot <- ggplot(slopes, aes(x = `Life Stage`, y = slope_bayes))+
    geom_point(aes(color = Species))+
    geom_boxplot(outliers = F)
)


(bayes.pc.boxplot <- ggplot(slopes, aes(x = `Life Stage`, y = `Bayes Percent Change`))+
  geom_point(aes(color = Species))+
  geom_boxplot(outliers = F)
)

NA
NA

Model

Meta-analytic model

slopes <- slopes %>% 
  rename(se_slope = Est.Error.begin_date_year,
         life_stage = `Life Stage`)

second_model_bayes <- brm( formula = bf(
  slope_bayes | se(se_slope) ~ FTP*life_stage),
  data = slopes,
  family = gaussian(),
  chains = 4,
  cores = 4,
  control = list(adapt_delta = 0.8)
)

summary(second_model_bayes)

Post-hoc comparisons

# 'emtrends' estimates the slope of FTP within each life_stage level
ftp_slopes <- emtrends(second_model_bayes, ~ life_stage, var = "FTP")
summary(ftp_slopes)
pairs(ftp_slopes)  # Compare FTP slope between life stages

Extract posterior summary

#create range of FTP to predict over
pred_grid <- expand.grid(
  FTP = seq(min(slopes$FTP, na.rm = TRUE), max(slopes$FTP, na.rm = TRUE), length.out = 100),
  life_stage = unique(slopes$life_stage),
  se_slope = 0
)

#extract posterior summaries and intervals for each combination of FTP and Life Stage
predictions <- add_fitted_draws(
  model = second_model_bayes,
  newdata = pred_grid,
  re_formula = NA  # Ensures population-level prediction
)

#summarize
pred_summary <- predictions %>%
  group_by(FTP, life_stage) %>%
  summarise(
    median = median(.value),
    lower = quantile(.value, 0.025),
    upper = quantile(.value, 0.975)
  ) %>%
  ungroup()

Plot

Remove Rainbow Trout and Northern Pike

second_model_bayes_spp_removed <- brm( formula = bf(
  slope_bayes | se(se_slope) ~ FTP*life_stage),
  data = slopes %>% filter(Species %in% c("Rainbow Trout", "Northern Pike")),
  family = gaussian(),
  chains = 4,
  cores = 4,
  control = list(adapt_delta = 0.8)
)

summary(second_model_bayes_spp_removed)

Post-hoc comparisons

# 'emtrends' estimates the slope of FTP within each life_stage level
ftp_slopes_spp_removed <- emtrends(second_model_bayes_spp_removed, ~ life_stage, var = "FTP")
summary(ftp_slopes_spp_removed)
pairs(ftp_slopes_spp_removed)  # Compare FTP slope between life stages

Extract posterior summary

#create range of FTP to predict over
pred_grid_spp_removed <- expand.grid(
  FTP = seq(min(slopes$FTP, na.rm = TRUE), max(slopes$FTP, na.rm = TRUE), length.out = 100),
  life_stage = unique(slopes$life_stage),
  se_slope = 0
)

#extract posterior summaries and intervals for each combination of FTP and Life Stage
predictions_spp_removed <- add_fitted_draws(
  model = second_model_bayes_spp_removed,
  newdata = pred_grid_spp_removed,
  re_formula = NA  # Ensures population-level prediction
)

#summarize
pred_summary_spp_removed <- predictions_spp_removed %>%
  group_by(FTP, life_stage) %>%
  summarise(
    median = median(.value),
    lower = quantile(.value, 0.025),
    upper = quantile(.value, 0.975)
  ) %>%
  ungroup()

Plot

Fully Bayesian two-level/joint model via posterior simulation - did not end up using this approach

Multipanel figures

Figure 3

fig3.bayes <- ggarrange(
  bayes.slopes.all.age.percent.change.plot,
  partial.effects.life.stage.ftp.plot, 
  bayes.slopes.all.plot.percent.juvenile,
  bayes.slopes.all.plot.percent.adult,
  ncol = 2,
  nrow = 3,
  #common.legend = T,
  legend = "right",
  labels = "AUTO"
)

fig3.bayes

ggsave(
  filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/fig3_bayes.tiff",
  fig3.bayes,
  dpi = 300,
  width = 300,
  height = 300,
  units = "mm"
)

Figure S14

figS14 <- ggarrange(
  bayes.slopes.linear.plot,
  bayes.slopes.linear.plot.remove.spp,
  partial.effects.life.stage.ftp.plot,
  partial.effects.life.stage.ftp.plot.spp.removed,
  ncol = 2,
  nrow = 2,
  common.legend = T,
  legend = "right",
  labels = "AUTO",
  hjust = -1.4
)

figS14

ggsave(
  filename = "~/GitHub/EAGER_growth/Outputs/Figures/Linear Models/figS14.tiff",
  figS14,
  dpi = 300,
  width = 200,
  height = 150,
  units = "mm"
)

Post-2015

Aging protocols changed after 2015 to include multiple structures for some species. We are investigating if there is any evidence that trends change post-2015.

Plot raw data

grow.merge.target.spp.clean <- grow.merge.target.spp %>% 
  mutate(species = species %>% 
           str_replace_all("_", " ") %>% 
           str_to_title()) %>% 
  rename(`Age Group` = age_group)

(all.spp.year <- ggplot(data = grow.merge.target.spp.clean, 
                        aes(x = begin_date_year, y = length_mean_mm, 
                            color = `Age Group`, fill = `Age Group`))+
   #geom_point(alpha = 0.1)+
   geom_smooth()+
   geom_vline(xintercept = 2015, color = "red", linetype = "dashed")+
   facet_wrap(~species, scales = "free")+
   scale_y_continuous(expand = c(0,0))+
   scale_color_viridis_d()+
   scale_fill_viridis_d()+
   theme_bw()
)

#No obvious differences in trends post-2015

ggsave(
  filename = "~/GitHub/EAGER_growth/Outputs/Figures/raw_data_smooth_spp_age_group.tiff",
  all.spp.year,
  dpi = 300,
  width = 300,
  height = 250,
  units = "mm"
)
LS0tDQp0aXRsZTogIjAzX2xpbmVhcl9tb2RlbHMiDQphdXRob3I6ICJQZXRlciBGbG9vZCINCmRhdGU6ICIyMDI0LTA5LTAzIg0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICAgIGRmX3ByaW50OiBwYWdlZA0KICBodG1sX25vdGVib29rOg0KICAgIHRvYzogeWVzDQogICAgdG9jX2Zsb2F0OiB5ZXMNCg0KLS0tDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UpDQpnZXR3ZCgpDQpgYGANCg0KIyBJbnN0YWxsIExpYnJhcmllcw0KYGBge3J9DQojSW5zdGFsbCBsaWJyYXJpZXMgaWYgbmVlZGVkDQoNCiNOZWVkIHRvIGluc3RhbGwgb25lIGZyb20gR2l0SHViDQoNCmlmICghcmVxdWlyZSgidGlkeXZlcnNlIikpIGluc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpDQppZiAoIXJlcXVpcmUoIm9wZW54bHN4IikpIGluc3RhbGwucGFja2FnZXMoIm9wZW54bHN4IikNCmlmICghcmVxdWlyZSgiUlZBaWRlTWVtb2lyZSIpKSBpbnN0YWxsLnBhY2thZ2VzKCJSVkFpZGVNZW1vaXJlIikNCmlmICghcmVxdWlyZSgiREhBUk1hIikpIGluc3RhbGwucGFja2FnZXMoIkRIQVJNYSIpDQppZiAoIXJlcXVpcmUoImZpdGRpc3RycGx1cyIpKSBpbnN0YWxsLnBhY2thZ2VzKCJmaXRkaXN0cnBsdXMiKQ0KaWYgKCFyZXF1aXJlKCJsb2dzcGxpbmUiKSkgaW5zdGFsbC5wYWNrYWdlcygibG9nc3BsaW5lIikNCmlmICghcmVxdWlyZSgiY2FyIikpIGluc3RhbGwucGFja2FnZXMoImNhciIpDQppZiAoIXJlcXVpcmUoImVmZmVjdHNpemUiKSkgaW5zdGFsbC5wYWNrYWdlcygiZWZmZWN0c2l6ZSIpDQppZiAoIXJlcXVpcmUoImdnZWZmZWN0cyIpKSBpbnN0YWxsLnBhY2thZ2VzKCJnZ2VmZmVjdHMiKQ0KaWYgKCFyZXF1aXJlKCJtYXJnaW5hbGVmZmVjdHMiKSkgaW5zdGFsbC5wYWNrYWdlcygibWFyZ2luYWxlZmZlY3RzIikNCmlmICghcmVxdWlyZSgiZW1tZWFucyIpKSBpbnN0YWxsLnBhY2thZ2VzKCJlbW1lYW5zIikNCmlmICghcmVxdWlyZSgiZ2dwbWlzYyIpKSBpbnN0YWxsLnBhY2thZ2VzKCJnZ3BtaXNjIikNCmlmICghcmVxdWlyZSgiZ2dwdWJyIikpIGluc3RhbGwucGFja2FnZXMoImdncHViciIpDQppZiAoIXJlcXVpcmUoImdncmVwZWwiKSkgaW5zdGFsbC5wYWNrYWdlcygiZ2dyZXBlbCIpDQppZiAoIXJlcXVpcmUoInJzdGF0aXgiKSkgaW5zdGFsbC5wYWNrYWdlcygicnN0YXRpeCIpDQppZiAoIXJlcXVpcmUoImJybXMiKSkgaW5zdGFsbC5wYWNrYWdlcygiYnJtcyIpDQppZiAoIXJlcXVpcmUoImxvbyIpKSBpbnN0YWxsLnBhY2thZ2VzKCJsb28iKQ0KaWYgKCFyZXF1aXJlKCJNdU1JbiIpKSBpbnN0YWxsLnBhY2thZ2VzKCJNdU1JbiIpDQppZiAoIXJlcXVpcmUoInRpZHliYXllcyIpKSBpbnN0YWxsLnBhY2thZ2VzKCJ0aWR5YmF5ZXMiKQ0KDQoNCmBgYA0KDQoNCiMgTG9hZCBMaWJyYXJpZXMNCmBgYHtyfQ0KDQpsaWJyYXJ5KG9wZW54bHN4KSAjcmVhZCBhbmQgd3JpdGUgLnhsc3gNCmxpYnJhcnkoUlZBaWRlTWVtb2lyZSkgI3VzZWQgZm9yIHRlc3RpbmcgbG0gbW9kZWwgYXNzdW1wdGlvbnMNCmxpYnJhcnkoREhBUk1hKSAjY2hlY2tpbmcgbW9kZWwgYXNzdW1wdGlvbnMgYW5kIG91dHB1dA0KbGlicmFyeShmaXRkaXN0cnBsdXMpICNpbnNpZ2h0IGludG8gd2hpY2ggZGlzdHJpYnV0aW9uIHRvIHVzZQ0KbGlicmFyeShsb2dzcGxpbmUpICNrLXMgdGVzdCBmb3Igc2VsZWN0ZWQgZGlzdHJpYnV0aW9uIA0KbGlicmFyeShjYXIpICNwYXJ0aWFsIHJlZ3Jlc3Npb24gcGxvdHMNCmxpYnJhcnkoZWZmZWN0c2l6ZSkgI2NhbGN1bGF0ZSBlZmZlY3Qgc2l6ZXMNCmxpYnJhcnkoZ2dlZmZlY3RzKSAjbWFyZ2luYWwgZWZmZWN0IHBsb3RzDQpsaWJyYXJ5KG1hcmdpbmFsZWZmZWN0cykgI21hcmdpbmFsIGVmZmVjdHMNCmxpYnJhcnkoZW1tZWFucykgI3Bvc3Rob2MgYW5hbHlzZXMNCmxpYnJhcnkoZ2dwbWlzYykgDQpsaWJyYXJ5KGdncHVicikgI2FycmFuZ2luZyBtdWx0aXBhbmVsIHBsb3RzDQpsaWJyYXJ5KGdncmVwZWwpICN0ZXh0IGxhYmVscyBvbiBwbG90cyB3L28gb3ZlcmxhcHBpbmcNCmxpYnJhcnkocnN0YXRpeCkgI3VzZWQgZm9yIGVtbWVhbnMgd3JhcHBlcnMgDQpsaWJyYXJ5KGJybXMpICNCYXllc2lhbiBtb2RlbGluZw0KbGlicmFyeShsb28pICNsZWF2ZS1vbmUtb3V0IGNyb3NzLXZhbGlkYXRpb24gb2YgQmF5ZXNpYW4gbW9kZWxzDQpsaWJyYXJ5KE11TUluKSAjbXVsdGktbW9kZWwgc2VsZWN0aW9uDQpsaWJyYXJ5KHRpZHl2ZXJzZSkgI2RhdGEgbWFuaXB1bGF0aW9uDQpsaWJyYXJ5KHRpZHliYXllcykgI2RhdGEgbWFuaXB1bGF0aW9uDQoNCmBgYA0KDQojIExvYWQgRGF0YQ0KYGBge3J9DQphbGwuZ3Jvdy5tZXJnZSA8LSByZWFkLnhsc3goIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL2FsbF9ncm93X2xha2Vfam9pbi54bHN4IikgJT4lIA0KICBtdXRhdGUoYWdlX2dyb3VwID0gYXMuZmFjdG9yKGFnZV9ncm91cCkpDQpgYGANCg0KIyMgRm9ybWF0IGRhdGENCk1lYW4gbGVuZ3RoIHBlciBzcGVjaWVzIHBlciBhZ2UgY2xhc3Mgb3ZlciB0aGUgZW50aXJlIGRhdGFzZXQNCmBgYHtyfQ0KbWVhbi5sZW5ndGguYWdlLmNsYXNzIDwtIGFsbC5ncm93Lm1lcmdlICU+JSANCiAgZ3JvdXBfYnkoc3BlY2llcywgYWdlX2dyb3VwKSAlPiUgDQogIHN1bW1hcmlzZShtZWFuID0gbWVhbihsZW5ndGhfbWVhbl9tbSwgbmEucm0gPSBUKSkgJT4lIA0KICBtdXRhdGUoU3BlY2llcyA9IGNhc2Vfd2hlbigNCiAgICBzcGVjaWVzID09ICJibGFja19jcmFwcGllIiB+ICJCbGFjayBDcmFwcGllIiwNCiAgICBzcGVjaWVzID09ICJibHVlZ2lsbCIgfiAiQmx1ZWdpbGwiLA0KICAgIHNwZWNpZXMgPT0gImJyb3duX3Ryb3V0IiB+ICJCcm93biBUcm91dCIsDQogICAgc3BlY2llcyA9PSAiY2lzY28iIH4gIkNpc2NvIiwNCiAgICBzcGVjaWVzID09ICJjb21tb25fd2hpdGVfc3Vja2VyIiB+ICJXaGl0ZSBTdWNrZXIiLA0KICAgIHNwZWNpZXMgPT0gImxhcmdlbW91dGhfYmFzcyIgfiAiTGFyZ2Vtb3V0aCBCYXNzIiwNCiAgICBzcGVjaWVzID09ICJub3J0aGVybl9waWtlIiB+ICJOb3J0aGVybiBQaWtlIiwNCiAgICBzcGVjaWVzID09ICJwdW1wa2luc2VlZF9zdW5maXNoIiB+ICJQdW1wa2luc2VlZCBTdW5maXNoIiwNCiAgICBzcGVjaWVzID09ICJyYWluYm93X3Ryb3V0IiB+ICJSYWluYm93IFRyb3V0IiwNCiAgICBzcGVjaWVzID09ICJyb2NrX2Jhc3MiIH4gIlJvY2sgQmFzcyIsIA0KICAgIHNwZWNpZXMgPT0gInNtYWxsbW91dGhfYmFzcyIgfiAiU21hbGxtb3V0aCBCYXNzIiwNCiAgICBzcGVjaWVzID09ICJ3YWxsZXllIiB+ICJXYWxsZXllIiwNCiAgICBzcGVjaWVzID09ICJ5ZWxsb3dfcGVyY2giIH4gIlllbGxvdyBQZXJjaCIsDQogICAgVCB+IHNwZWNpZXMNCiAgKSkgJT4lIA0KICByZW5hbWUoQWdlID0gYWdlX2dyb3VwKSANCmBgYA0KDQojIExpbmVhciBSZWdyZXNzaW9ucw0KRGF0YSBtYXkgbm90IGNvbmZvcm0gd2VsbCB0byBtb2RlbCBhc3N1bXB0aW9ucy4gVGhlIGdvYWwgb2YgdGhlc2UgbW9kZWxzIGlzIHRvIGFzayB3aGV0aGVyIG9yIG5vdCBhIGdpdmVuIHNwZWNpZXMgc2l6ZSBjbGFzcyBpcyBpbmNyZWFzaW5nIG9yIGRlY3JlYXNpbmcgaW4gc2l6ZSB0aHJvdWdoIHRpbWUuIE5vdCBuZWNlc3NhcnkgdG8gb3ZlciBpbnRlcnByZXQgdGhlIGV4YWN0IGFtb3VudCBvZiBjaGFuZ2UsIGFsdGhvdWdoIHdlIGRvIHJlcG9ydCB0aGF0LCBpdCBzaG91bGQgYmUgdGFrZW4gd2l0aCBhIGdyYWluIG9mIHNhbHQuDQoNCiMjIEJsYWNrIENyYXBwaWUNCg0KIyMjTW9kZWwNCmBgYHtyfQ0KI2ZpbHRlciBkYXRhIGZvciBvbmx5IEJsYWNrIENyYXBwaWUsIFBvbW9veGlzIG5pZ3JvbWFjdWxhdHVzIA0KcG9tbmlnIDwtIGFsbC5ncm93Lm1lcmdlICU+JSBmaWx0ZXIoc3BlY2llcyA9PSAiYmxhY2tfY3JhcHBpZSIpICU+JSANCiAgZmlsdGVyKCFhZ2VfZ3JvdXAgJWluJSBjKDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiksICNtYXRjaCBhZ2UgZ3JvdXBzIGluIEJSVHMNCiAgICAgICAgICFpcy5uYShhZ2VfZ3JvdXApLCAhaXMubmEoYmVnaW5fZGF0ZV95ZWFyKSwgIWlzLm5hKGxlbmd0aF9tZWFuX21tKSwNCiAgICAgICAgICFpcy5uYShsb2dfbWF4X2RlcHRoKSwgIWlzLm5hKGxvZ2FyZWEpKSAlPiUgDQogIG11dGF0ZShhZ2VfZ3JvdXAgPSBmY3RfcmV2KGFnZV9ncm91cCkpDQoNCiNsaW5lYXIgbW9kZWwNCnBvbW5pZy5sbSA8LSBsbShsZW5ndGhfbWVhbl9tbSB+IGJlZ2luX2RhdGVfeWVhciphZ2VfZ3JvdXAgKyBsb2dfbWF4X2RlcHRoICsgbG9nYXJlYSArIGRveSwgZGF0YSA9IHBvbW5pZykNCnN1bW1hcnkocG9tbmlnLmxtKQ0KDQojY2FsY3VsYXRlIGFuZCBpbnRlcnByZXQgZWZmZWN0IHNpemVzDQpldGFfc3F1YXJlZChwb21uaWcubG0pDQojaW50ZXJwcmV0KGV0YV9zcXVhcmVkKHBvbW5pZy5sbSksIHJ1bGVzID0gImNvaGVuMTk5MiIpDQoNCiNjYWxjdWxhdGUgQUlDIHNjb3JlDQpBSUMocG9tbmlnLmxtKQ0KDQojZXhhbWluZSBtb2RlbCBmaXQNCnRlc3REaXNwZXJzaW9uKHBvbW5pZy5sbSkNCg0Kc2ltdWxhdGlvbi5vdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBwb21uaWcubG0pDQoNCnJlc2lkdWFscyhwb21uaWcubG0pDQpyZXNpZHVhbHMocG9tbmlnLmxtLCBxdWFudGlsZUZ1bmN0aW9uID0gcW5vcm0pDQoNCnBsb3QocG9tbmlnLmxtKQ0KYGBgDQoNCiMjI1Bvc3QtaG9jIGNvbXBhcmlzb25zDQpgYGB7cn0NCiNwb3N0LWhvYyBjb21wYXJpc29ucw0KcG9tbmlnLmVtbSA8LSBlbW1lYW5zKHBvbW5pZy5sbSwgfiBiZWdpbl9kYXRlX3llYXIqYWdlX2dyb3VwKQ0KcGFpcnMocG9tbmlnLmVtbSwgc2ltcGxlID0gImFnZV9ncm91cCIpDQp0ZXN0KHBhaXJzKHBvbW5pZy5lbW0sIGJ5ID0gImJlZ2luX2RhdGVfeWVhciIpLCBieSA9IE5VTEwsIGFkanVzdCA9ICJtdnQiKQ0KDQojZXhwb3J0IHRhYmxlcw0KIyBpbnRlcnByZXQoZXRhX3NxdWFyZWQocG9tbmlnLmxtKSwgcnVsZXMgPSAiY29oZW4xOTkyIikgJT4lDQojICAgd3JpdGUuY3N2KGZpbGUgPSAiT3V0cHV0cy9UYWJsZXMvcG9tbmlnX2V0YV9zcXVhcmVkLmNzdiIpDQoNCiNzbG9wZSBjb250cmFzdHMNCiMgT2J0YWluIHNsb3BlIGVzdGltYXRlcw0KcG9tbmlnLnNsb3BlcyA8LSBlbXRyZW5kcyhwb21uaWcubG0sIH5hZ2VfZ3JvdXAsIHZhciA9ICJiZWdpbl9kYXRlX3llYXIiKQ0KIyBDb21wYXJlIGVzdGltYXRlZCBzbG9wZXMgdG8gMA0KcG9tbmlnLnNsb3BlLmNvbnRyYXN0cyA8LSB0ZXN0KHBvbW5pZy5zbG9wZXMpICU+JSANCiAgbXV0YXRlKFNwZWNpZXMgPSAiQmxhY2sgQ3JhcHBpZSIpICU+JSANCiAgcmVuYW1lKEFnZSA9IGFnZV9ncm91cCkNCg0KcG9tbmlnLnNsb3BlLmNvbnRyYXN0cyAlPiUNCiAgd3JpdGUuY3N2KGZpbGUgPSAiT3V0cHV0cy9UYWJsZXMvcG9tbmlnX2VtbWVhbnMuY3N2IikNCmBgYA0KDQojIyMgUGxvdCByYXcgZGF0YQ0KYGBge3J9DQoocG9tbmlnLmxlbmd0aC55ZWFyLnBsb3QgPC0gZ2dwbG90KGRhdGEgPSBwb21uaWcgJT4lIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0YXRlKEFnZSA9IGFzLmZhY3RvcihhZ2VfZ3JvdXApKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzKHggPSBiZWdpbl9kYXRlX3llYXIsIHkgPSBsZW5ndGhfbWVhbl9tbSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gQWdlLCBmaWxsID0gQWdlLCBncm91cCA9IEFnZSkpKw0KICAgICNnZW9tX3BvaW50KCkrDQogICAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikrDQogICAgc3RhdF9wb2x5X2VxKHVzZV9sYWJlbCgiZXEiKSkrDQogICAgc2NhbGVfY29sb3JfdmlyaWRpc19kKCkrDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSsNCiAgICBsYWJzKHkgPSAiTGVuZ3RoIChtbSkiLCB4ID0gIlllYXIiKSsNCiAgICB0aGVtZV9idygpDQopDQoNCmBgYA0KIyMjIE1hcmdpbmFsIEVmZmVjdHMNCmBgYHtyfQ0KcmVzdWx0IDwtIHByZWRpY3RfcmVzcG9uc2UocG9tbmlnLmxtLCBjKCJiZWdpbl9kYXRlX3llYXIiLCAiYWdlX2dyb3VwIikpDQoNCiMgcGxvdChyZXN1bHQpDQojIHRlc3RfcHJlZGljdGlvbnMocmVzdWx0KSAlPiUgDQojICAgd3JpdGUuY3N2KGZpbGUgPSAiT3V0cHV0cy9UYWJsZXMvcG9tbmlnX3BhaXJ3aXNlX2xlbmd0aF90aW1lX3Nsb3Blcy5jc3YiLCByb3cubmFtZXMgPSBGKQ0KDQoocG9tbmlnLm1hcmdpbmFsLnBsb3QgPC0gZ2dwcmVkaWN0KHBvbW5pZy5sbSwgdGVybXMgPSBjKCJiZWdpbl9kYXRlX3llYXIiLCAiYWdlX2dyb3VwIikpICU+JSAgDQogICAgcGxvdCgpKw0KICAgICNzdGF0X3BvbHlfZXEodXNlX2xhYmVsKCJlcSIpKSsNCiAgICBzdGF0X3JlZ2xpbmVfZXF1YXRpb24oKSsNCiAgICBzdGF0X3BvbHlfbGluZSgpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDEwMDAgLSAwLjM1eCIsIHggPSAyMDAwLCB5ID0gMzUwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAyMSArIDAuMDkzeCIsIHggPSAyMDAwLCB5ID0gMjEyKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAtNjQgKyAwLjEzeCIsIHggPSAyMDAwLCB5ID0gMTk5KSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAyMzAgLSAwLjAyOHgiLCB4ID0gMjAwMCwgeSA9IDE4MikrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gNjEwIC0gMC4yM3giLCB4ID0gMjAwMCwgeSA9IDE2MCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gOTIwIC0gMC4zOXgiLCB4ID0gMjAwMCwgeSA9IDEzNykrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMTIwMCAtIDAuNTV4IiwgeCA9IDIwMDAsIHkgPSAxMTApKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDE3MDAgLSAwLjgzeCIsIHggPSAyMDAwLCB5ID0gODApKw0KICAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpKw0KICAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkrDQogICAgbGFicyh0aXRsZSA9IE5VTEwsDQogICAgICAgICB5ID0gIk1lYW4gTGVuZ3RoLWF0LUFnZSAobW0pIiwNCiAgICAgICAgIHggPSAiWWVhciIpKw0KICAgIGd1aWRlcyhmaWxsID0gZ3VpZGVfbGVnZW5kKHRpdGxlID0gIkFnZSIsIHJldmVyc2UgPSBUKSwgY29sb3IgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiQWdlIiwgcmV2ZXJzZSA9IFQpKSsNCiAgICB0aGVtZV9idygpDQopDQoNCg0KZ2dzYXZlKGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9wb21uaWdfbWFyZ2luYWxfZWZmZWN0c19wbG90LnRpZmYiLCANCiAgICAgICBwb21uaWcubWFyZ2luYWwucGxvdCwgDQogICAgICAgZHBpID0gMzAwLCB3aWR0aCA9IDIwMCwgaGVpZ2h0ID0gMTUwLCB1bml0cyA9ICJtbSIpDQpgYGANCg0KDQojIyBCbHVlZ2lsbA0KDQojIyMgTW9kZWwNCmBgYHtyfQ0KI2ZpbHRlciBkYXRhIGZvciBvbmx5IEJsYWNrIENyYXBwaWUsIFBvbW9veGlzIG5pZ3JvbWFjdWxhdHVzIA0KbGVwbWFjIDwtIGFsbC5ncm93Lm1lcmdlICU+JSBmaWx0ZXIoc3BlY2llcyA9PSAiYmx1ZWdpbGwiKSAlPiUgDQogIGZpbHRlcighYWdlX2dyb3VwICVpbiUgYygxMiwgMTMsIDE4KSwgI21hdGNoIGFnZSBncm91cHMgaW4gQlJUcw0KICAgICAgICAgIWlzLm5hKGFnZV9ncm91cCksICFpcy5uYShiZWdpbl9kYXRlX3llYXIpLCAhaXMubmEobGVuZ3RoX21lYW5fbW0pLA0KICAgICAgICAgIWlzLm5hKGxvZ19tYXhfZGVwdGgpLCAhaXMubmEobG9nYXJlYSkpDQoNCiNsaW5lYXIgbW9kZWwNCmxlcG1hYy5sbSA8LSBsbShsZW5ndGhfbWVhbl9tbSB+IGJlZ2luX2RhdGVfeWVhciphZ2VfZ3JvdXAgKyBsb2dfbWF4X2RlcHRoICsgbG9nYXJlYSArIGRveSwgZGF0YSA9IGxlcG1hYykNCnN1bW1hcnkobGVwbWFjLmxtKQ0KDQojY2FsY3VsYXRlIGFuZCBpbnRlcnByZXQgZWZmZWN0IHNpemVzDQpldGFfc3F1YXJlZChsZXBtYWMubG0pDQojaW50ZXJwcmV0KGV0YV9zcXVhcmVkKGxlcG1hYy5sbSksIHJ1bGVzID0gImNvaGVuMTk5MiIpDQoNCiNjYWxjdWxhdGUgQUlDIHNjb3JlDQpBSUMobGVwbWFjLmxtKQ0KDQojZXhhbWluZSBtb2RlbCBmaXQNCnRlc3REaXNwZXJzaW9uKGxlcG1hYy5sbSkNCg0Kc2ltdWxhdGlvbi5vdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBsZXBtYWMubG0pDQoNCnJlc2lkdWFscyhsZXBtYWMubG0pDQpyZXNpZHVhbHMobGVwbWFjLmxtLCBxdWFudGlsZUZ1bmN0aW9uID0gcW5vcm0pDQoNCnBsb3QobGVwbWFjLmxtKQ0KYGBgDQoNCiMjIyBQb3N0LWhvYyBjb21wYXJpc29ucw0KYGBge3J9DQpsZXBtYWMuZW1tIDwtIGVtbWVhbnMobGVwbWFjLmxtLCB+IGJlZ2luX2RhdGVfeWVhciphZ2VfZ3JvdXApDQpwYWlycyhsZXBtYWMuZW1tLCBzaW1wbGUgPSAiYWdlX2dyb3VwIikNCnRlc3QocGFpcnMobGVwbWFjLmVtbSwgYnkgPSAiYmVnaW5fZGF0ZV95ZWFyIiksIGJ5ID0gTlVMTCwgYWRqdXN0ID0gIm12dCIpDQoNCiNleHBvcnQgdGFibGVzDQojICNpbnRlcnByZXQoZXRhX3NxdWFyZWQobGVwbWFjLmxtKSwgcnVsZXMgPSAiY29oZW4xOTkyIikgJT4lDQojICAgd3JpdGUuY3N2KGZpbGUgPSAiT3V0cHV0cy9UYWJsZXMvbGVwbWFjX2V0YV9zcXVhcmVkLmNzdiIpDQoNCiNzbG9wZSBjb250cmFzdHMNCiMgT2J0YWluIHNsb3BlIGVzdGltYXRlcw0KbGVwbWFjLnNsb3BlcyA8LSBlbXRyZW5kcyhsZXBtYWMubG0sIH5hZ2VfZ3JvdXAsIHZhciA9ICJiZWdpbl9kYXRlX3llYXIiKQ0KIyBDb21wYXJlIGVzdGltYXRlZCBzbG9wZXMgdG8gMA0KbGVwbWFjLnNsb3BlLmNvbnRyYXN0cyA8LSB0ZXN0KGxlcG1hYy5zbG9wZXMpICU+JSANCiAgbXV0YXRlKFNwZWNpZXMgPSAiQmx1ZWdpbGwiKSAlPiUgDQogIHJlbmFtZShBZ2UgPSBhZ2VfZ3JvdXApDQoNCmxlcG1hYy5zbG9wZS5jb250cmFzdHMgJT4lDQogIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL2xlcG1hY19lbW1lYW5zLmNzdiIpDQpgYGANCg0KIyMjIFBsb3QgcmF3IGRhdGENCmBgYHtyfQ0KKGxlcG1hYy5sZW5ndGgueWVhci5wbG90IDwtIGdncGxvdChkYXRhID0gbGVwbWFjICU+JSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZShBZ2UgPSBhcy5mYWN0b3IoYWdlX2dyb3VwKSksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gYmVnaW5fZGF0ZV95ZWFyLCB5ID0gbGVuZ3RoX21lYW5fbW0sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IEFnZSwgZmlsbCA9IEFnZSwgZ3JvdXAgPSBBZ2UpKSsNCiAgICAjZ2VvbV9wb2ludCgpKw0KICAgIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpKw0KICAgIHN0YXRfcG9seV9lcSh1c2VfbGFiZWwoImVxIikpKw0KICAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpKw0KICAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkrDQogICAgbGFicyh5ID0gIkxlbmd0aCAobW0pIiwgeCA9ICJZZWFyIikrDQogICAgdGhlbWVfYncoKQ0KKQ0KDQpgYGANCiMjIyBNYXJnaW5hbCBFZmZlY3RzDQpgYGB7cn0NCnJlc3VsdCA8LSBwcmVkaWN0X3Jlc3BvbnNlKGxlcG1hYy5sbSwgYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKQ0KDQojIHBsb3QocmVzdWx0KQ0KIyB0ZXN0X3ByZWRpY3Rpb25zKHJlc3VsdCkgJT4lIA0KIyAgIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL2xlcG1hY19wYWlyd2lzZV9sZW5ndGhfdGltZV9zbG9wZXMuY3N2Iiwgcm93Lm5hbWVzID0gRikNCg0KKGxlcG1hYy5tYXJnaW5hbC5wbG90IDwtIGdncHJlZGljdChsZXBtYWMubG0sIHRlcm1zID0gYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKSAlPiUgIA0KICAgIHBsb3QoKSsNCiAgICAjc3RhdF9wb2x5X2VxKHVzZV9sYWJlbCgiZXEiKSkrDQogICAgc3RhdF9yZWdsaW5lX2VxdWF0aW9uKCkrDQogICAgc3RhdF9wb2x5X2xpbmUoKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA3NyArIDAuMDd4IiwgeCA9IDIwMDAsIHkgPSAyMjQpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDIxICsgMC4wOTN4IiwgeCA9IDIwMDAsIHkgPSAyMTIpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IC02NCArIDAuMTN4IiwgeCA9IDIwMDAsIHkgPSAxOTkpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDIzMCAtIDAuMDI4eCIsIHggPSAyMDAwLCB5ID0gMTgyKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA2MTAgLSAwLjIzeCIsIHggPSAyMDAwLCB5ID0gMTYwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA5MjAgLSAwLjM5eCIsIHggPSAyMDAwLCB5ID0gMTM3KSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAxMjAwIC0gMC41NXgiLCB4ID0gMjAwMCwgeSA9IDExMCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMTcwMCAtIDAuODN4IiwgeCA9IDIwMDAsIHkgPSA4MCkrDQogICAgc2NhbGVfY29sb3JfdmlyaWRpc19kKCkrDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSsNCiAgICBsYWJzKHRpdGxlID0gTlVMTCwNCiAgICAgICAgIHkgPSAiTWVhbiBMZW5ndGgtYXQtQWdlIChtbSkiLA0KICAgICAgICAgeCA9ICJZZWFyIikrDQogICAgZ3VpZGVzKGZpbGwgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiQWdlIiwgcmV2ZXJzZSA9IFQpLCBjb2xvciA9IGd1aWRlX2xlZ2VuZCh0aXRsZSA9ICJBZ2UiLCByZXZlcnNlID0gVCkpKw0KICAgIHRoZW1lX2J3KCkNCikNCg0KDQpnZ3NhdmUoZmlsZW5hbWUgPSAifi9HaXRIdWIvRUFHRVJfZ3Jvd3RoL091dHB1dHMvRmlndXJlcy9MaW5lYXIgTW9kZWxzL2xlcG1hY19tYXJnaW5hbF9lZmZlY3RzX3Bsb3QudGlmZiIsIA0KICAgICAgIGxlcG1hYy5tYXJnaW5hbC5wbG90LCANCiAgICAgICBkcGkgPSAzMDAsIHdpZHRoID0gMjAwLCBoZWlnaHQgPSAxNTAsIHVuaXRzID0gIm1tIikNCmBgYA0KDQojIyBCcm93biBUcm91dA0KDQojIyMgTW9kZWwNCmBgYHtyfQ0KI2ZpbHRlciBkYXRhIGZvciBvbmx5IEJsYWNrIENyYXBwaWUsIFBvbW9veGlzIG5pZ3JvbWFjdWxhdHVzIA0Kc2FsdHJ1IDwtIGFsbC5ncm93Lm1lcmdlICU+JSBmaWx0ZXIoc3BlY2llcyA9PSAiYnJvd25fdHJvdXQiKSAlPiUgDQogIGZpbHRlcihhZ2VfZ3JvdXAgJWluJSBjKDEsIDIsIDMsIDQsIDUpLCAjbWF0Y2ggYWdlIGdyb3VwcyBpbiBCUlRzDQogICAgICAgICAhaXMubmEoYWdlX2dyb3VwKSwgIWlzLm5hKGJlZ2luX2RhdGVfeWVhciksICFpcy5uYShsZW5ndGhfbWVhbl9tbSksDQogICAgICAgICAhaXMubmEobG9nX21heF9kZXB0aCksICFpcy5uYShsb2dhcmVhKSkNCg0KI2xpbmVhciBtb2RlbA0Kc2FsdHJ1LmxtIDwtIGxtKGxlbmd0aF9tZWFuX21tIH4gYmVnaW5fZGF0ZV95ZWFyKmFnZV9ncm91cCArIGxvZ19tYXhfZGVwdGggKyBsb2dhcmVhICsgZG95LCBkYXRhID0gc2FsdHJ1KQ0Kc3VtbWFyeShzYWx0cnUubG0pDQoNCiNjYWxjdWxhdGUgYW5kIGludGVycHJldCBlZmZlY3Qgc2l6ZXMNCmV0YV9zcXVhcmVkKHNhbHRydS5sbSkNCiNpbnRlcnByZXQoZXRhX3NxdWFyZWQoc2FsdHJ1LmxtKSwgcnVsZXMgPSAiY29oZW4xOTkyIikNCg0KI2NhbGN1bGF0ZSBBSUMgc2NvcmUNCkFJQyhzYWx0cnUubG0pDQoNCiNleGFtaW5lIG1vZGVsIGZpdA0KdGVzdERpc3BlcnNpb24oc2FsdHJ1LmxtKQ0KDQpzaW11bGF0aW9uLm91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IHNhbHRydS5sbSkNCg0KcmVzaWR1YWxzKHNhbHRydS5sbSkNCnJlc2lkdWFscyhzYWx0cnUubG0sIHF1YW50aWxlRnVuY3Rpb24gPSBxbm9ybSkNCg0KcGxvdChzYWx0cnUubG0pDQpgYGANCg0KIyMjIFBvc3QtaG9jIGNvbXBhcmlzb25zDQpgYGB7cn0NCnNhbHRydS5lbW0gPC0gZW1tZWFucyhzYWx0cnUubG0sIH4gYmVnaW5fZGF0ZV95ZWFyKmFnZV9ncm91cCkNCnBhaXJzKHNhbHRydS5lbW0sIHNpbXBsZSA9ICJhZ2VfZ3JvdXAiKQ0KdGVzdChwYWlycyhzYWx0cnUuZW1tLCBieSA9ICJiZWdpbl9kYXRlX3llYXIiKSwgYnkgPSBOVUxMLCBhZGp1c3QgPSAibXZ0IikNCg0KI2V4cG9ydCB0YWJsZXMNCiMgI2ludGVycHJldChldGFfc3F1YXJlZChzYWx0cnUubG0pLCBydWxlcyA9ICJjb2hlbjE5OTIiKSAlPiUNCiMgICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9zYWx0cnVfZXRhX3NxdWFyZWQuY3N2IikNCg0KI3Nsb3BlIGNvbnRyYXN0cw0KIyBPYnRhaW4gc2xvcGUgZXN0aW1hdGVzDQpzYWx0cnUuc2xvcGVzIDwtIGVtdHJlbmRzKHNhbHRydS5sbSwgfmFnZV9ncm91cCwgdmFyID0gImJlZ2luX2RhdGVfeWVhciIpDQojIENvbXBhcmUgZXN0aW1hdGVkIHNsb3BlcyB0byAwDQpzYWx0cnUuc2xvcGUuY29udHJhc3RzIDwtIHRlc3Qoc2FsdHJ1LnNsb3BlcykgJT4lIA0KICBtdXRhdGUoU3BlY2llcyA9ICJCcm93biBUcm91dCIpICU+JSANCiAgcmVuYW1lKEFnZSA9IGFnZV9ncm91cCkNCg0Kc2FsdHJ1LnNsb3BlLmNvbnRyYXN0cyAlPiUNCiAgd3JpdGUuY3N2KGZpbGUgPSAiT3V0cHV0cy9UYWJsZXMvc2FsdHJ1X2VtbWVhbnMuY3N2IikNCmBgYA0KDQojIyMgUGxvdCByYXcgZGF0YQ0KYGBge3J9DQooc2FsdHJ1Lmxlbmd0aC55ZWFyLnBsb3QgPC0gZ2dwbG90KGRhdGEgPSBzYWx0cnUgJT4lIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0YXRlKEFnZSA9IGFzLmZhY3RvcihhZ2VfZ3JvdXApKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzKHggPSBiZWdpbl9kYXRlX3llYXIsIHkgPSBsZW5ndGhfbWVhbl9tbSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gQWdlLCBmaWxsID0gQWdlLCBncm91cCA9IEFnZSkpKw0KICAgICNnZW9tX3BvaW50KCkrDQogICAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikrDQogICAgc3RhdF9wb2x5X2VxKHVzZV9sYWJlbCgiZXEiKSkrDQogICAgc2NhbGVfY29sb3JfdmlyaWRpc19kKCkrDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSsNCiAgICBsYWJzKHkgPSAiTGVuZ3RoIChtbSkiLCB4ID0gIlllYXIiKSsNCiAgICB0aGVtZV9idygpDQopDQoNCmBgYA0KDQojIyMgTWFyZ2luYWwgRWZmZWN0cw0KYGBge3J9DQpyZXN1bHQgPC0gcHJlZGljdF9yZXNwb25zZShzYWx0cnUubG0sIGMoImJlZ2luX2RhdGVfeWVhciIsICJhZ2VfZ3JvdXAiKSkNCg0KIyBwbG90KHJlc3VsdCkNCiMgdGVzdF9wcmVkaWN0aW9ucyhyZXN1bHQpICU+JSANCiMgICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9zYWx0cnVfcGFpcndpc2VfbGVuZ3RoX3RpbWVfc2xvcGVzLmNzdiIsIHJvdy5uYW1lcyA9IEYpDQoNCihzYWx0cnUubWFyZ2luYWwucGxvdCA8LSBnZ3ByZWRpY3Qoc2FsdHJ1LmxtLCB0ZXJtcyA9IGMoImJlZ2luX2RhdGVfeWVhciIsICJhZ2VfZ3JvdXAiKSkgJT4lICANCiAgICBwbG90KCkrDQogICAgI3N0YXRfcG9seV9lcSh1c2VfbGFiZWwoImVxIikpKw0KICAgIHN0YXRfcmVnbGluZV9lcXVhdGlvbigpKw0KICAgIHN0YXRfcG9seV9saW5lKCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMzAwMCAtIDEuMngiLCB4ID0gMjAwMCwgeSA9IDI1MCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMjAwMCAtIDAuNzZ4IiwgeCA9IDIwMDAsIHkgPSAzNTApKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDE5MDAgLSAwLjc2eCIsIHggPSAyMDAwLCB5ID0gNDMwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAzMjAwIC0gMS40eCIsIHggPSAyMDAwLCB5ID0gNTAwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA0MTAwIC0gMS45eCIsIHggPSAyMDAwLCB5ID0gNTUwKSsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoKSsNCiAgICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgpKw0KICAgIGxhYnModGl0bGUgPSBOVUxMLA0KICAgICAgICAgeSA9ICJNZWFuIExlbmd0aC1hdC1BZ2UgKG1tKSIsDQogICAgICAgICB4ID0gIlllYXIiKSsNCiAgICBndWlkZXMoZmlsbCA9IGd1aWRlX2xlZ2VuZCh0aXRsZSA9ICJBZ2UiLCByZXZlcnNlID0gVCksIGNvbG9yID0gZ3VpZGVfbGVnZW5kKHRpdGxlID0gIkFnZSIsIHJldmVyc2UgPSBUKSkrDQogICAgdGhlbWVfYncoKQ0KKQ0KDQoNCmdnc2F2ZShmaWxlbmFtZSA9ICJ+L0dpdEh1Yi9FQUdFUl9ncm93dGgvT3V0cHV0cy9GaWd1cmVzL0xpbmVhciBNb2RlbHMvc2FsdHJ1X21hcmdpbmFsX2VmZmVjdHNfcGxvdC50aWZmIiwgDQogICAgICAgc2FsdHJ1Lm1hcmdpbmFsLnBsb3QsIA0KICAgICAgIGRwaSA9IDMwMCwgd2lkdGggPSAyMDAsIGhlaWdodCA9IDE1MCwgdW5pdHMgPSAibW0iKQ0KYGBgDQoNCg0KDQoNCiMjIENpc2NvDQoNCiMjIyBNb2RlbA0KYGBge3J9DQojZmlsdGVyIGRhdGEgZm9yIG9ubHkgQmxhY2sgQ3JhcHBpZSwgUG9tb294aXMgbmlncm9tYWN1bGF0dXMgDQpjb3JhcnQgPC0gYWxsLmdyb3cubWVyZ2UgJT4lIGZpbHRlcihzcGVjaWVzID09ICJjaXNjbyIpICU+JSANCiAgZmlsdGVyKGFnZV9ncm91cCAlaW4lIGMoMiwgMywgNCwgNSwgNiwgNyksICNtYXRjaCBhZ2UgZ3JvdXBzIGluIEJSVHMNCiAgICAgICAgICFpcy5uYShhZ2VfZ3JvdXApLCAhaXMubmEoYmVnaW5fZGF0ZV95ZWFyKSwgIWlzLm5hKGxlbmd0aF9tZWFuX21tKSwNCiAgICAgICAgICFpcy5uYShsb2dfbWF4X2RlcHRoKSwgIWlzLm5hKGxvZ2FyZWEpKQ0KDQojbGluZWFyIG1vZGVsDQpjb3JhcnQubG0gPC0gbG0obGVuZ3RoX21lYW5fbW0gfiBiZWdpbl9kYXRlX3llYXIqYWdlX2dyb3VwICsgbG9nX21heF9kZXB0aCArIGxvZ2FyZWEgKyBkb3ksIGRhdGEgPSBjb3JhcnQpDQpzdW1tYXJ5KGNvcmFydC5sbSkNCg0KI2NhbGN1bGF0ZSBhbmQgaW50ZXJwcmV0IGVmZmVjdCBzaXplcw0KZXRhX3NxdWFyZWQoY29yYXJ0LmxtKQ0KI2ludGVycHJldChldGFfc3F1YXJlZChjb3JhcnQubG0pLCBydWxlcyA9ICJjb2hlbjE5OTIiKQ0KDQojY2FsY3VsYXRlIEFJQyBzY29yZQ0KQUlDKGNvcmFydC5sbSkNCg0KI2V4YW1pbmUgbW9kZWwgZml0DQp0ZXN0RGlzcGVyc2lvbihjb3JhcnQubG0pDQoNCnNpbXVsYXRpb24ub3V0cHV0IDwtIHNpbXVsYXRlUmVzaWR1YWxzKGZpdHRlZE1vZGVsID0gY29yYXJ0LmxtKQ0KDQpyZXNpZHVhbHMoY29yYXJ0LmxtKQ0KcmVzaWR1YWxzKGNvcmFydC5sbSwgcXVhbnRpbGVGdW5jdGlvbiA9IHFub3JtKQ0KDQpwbG90KGNvcmFydC5sbSkNCmBgYA0KDQojIyMgUG9zdC1ob2MgY29tcGFyaXNvbnMNCmBgYHtyfQ0KY29yYXJ0LmVtbSA8LSBlbW1lYW5zKGNvcmFydC5sbSwgfiBiZWdpbl9kYXRlX3llYXIqYWdlX2dyb3VwKQ0KcGFpcnMoY29yYXJ0LmVtbSwgc2ltcGxlID0gImFnZV9ncm91cCIpDQp0ZXN0KHBhaXJzKGNvcmFydC5lbW0sIGJ5ID0gImJlZ2luX2RhdGVfeWVhciIpLCBieSA9IE5VTEwsIGFkanVzdCA9ICJtdnQiKQ0KDQojZXhwb3J0IHRhYmxlcw0KIyAjaW50ZXJwcmV0KGV0YV9zcXVhcmVkKGNvcmFydC5sbSksIHJ1bGVzID0gImNvaGVuMTk5MiIpICU+JQ0KIyAgIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL2NvcmFydF9ldGFfc3F1YXJlZC5jc3YiKQ0KDQojc2xvcGUgY29udHJhc3RzDQojIE9idGFpbiBzbG9wZSBlc3RpbWF0ZXMNCmNvcmFydC5zbG9wZXMgPC0gZW10cmVuZHMoY29yYXJ0LmxtLCB+YWdlX2dyb3VwLCB2YXIgPSAiYmVnaW5fZGF0ZV95ZWFyIikNCiMgQ29tcGFyZSBlc3RpbWF0ZWQgc2xvcGVzIHRvIDANCmNvcmFydC5zbG9wZS5jb250cmFzdHMgPC0gdGVzdChjb3JhcnQuc2xvcGVzKSAlPiUgDQogIG11dGF0ZShTcGVjaWVzID0gIkNpc2NvIikgJT4lIA0KICByZW5hbWUoQWdlID0gYWdlX2dyb3VwKQ0KDQpjb3JhcnQuc2xvcGUuY29udHJhc3RzICU+JQ0KICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9jb3JhcnRfZW1tZWFucy5jc3YiKQ0KYGBgDQoNCiMjIyBQbG90IHJhdyBkYXRhDQpgYGB7cn0NCihjb3JhcnQubGVuZ3RoLnllYXIucGxvdCA8LSBnZ3Bsb3QoZGF0YSA9IGNvcmFydCAlPiUgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGUoQWdlID0gYXMuZmFjdG9yKGFnZV9ncm91cCkpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IGJlZ2luX2RhdGVfeWVhciwgeSA9IGxlbmd0aF9tZWFuX21tLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBBZ2UsIGZpbGwgPSBBZ2UsIGdyb3VwID0gQWdlKSkrDQogICAgI2dlb21fcG9pbnQoKSsNCiAgICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKSsNCiAgICBzdGF0X3BvbHlfZXEodXNlX2xhYmVsKCJlcSIpKSsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoKSsNCiAgICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgpKw0KICAgIGxhYnMoeSA9ICJMZW5ndGggKG1tKSIsIHggPSAiWWVhciIpKw0KICAgIHRoZW1lX2J3KCkNCikNCg0KYGBgDQoNCiMjIyBNYXJnaW5hbCBFZmZlY3RzDQpgYGB7cn0NCnJlc3VsdCA8LSBwcmVkaWN0X3Jlc3BvbnNlKGNvcmFydC5sbSwgYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKQ0KDQojIHBsb3QocmVzdWx0KQ0KIyB0ZXN0X3ByZWRpY3Rpb25zKHJlc3VsdCkgJT4lIA0KIyAgIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL2NvcmFydF9wYWlyd2lzZV9sZW5ndGhfdGltZV9zbG9wZXMuY3N2Iiwgcm93Lm5hbWVzID0gRikNCg0KKGNvcmFydC5tYXJnaW5hbC5wbG90IDwtIGdncHJlZGljdChjb3JhcnQubG0sIHRlcm1zID0gYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKSAlPiUgIA0KICAgIHBsb3QoKSsNCiAgICAjc3RhdF9wb2x5X2VxKHVzZV9sYWJlbCgiZXEiKSkrDQogICAgc3RhdF9yZWdsaW5lX2VxdWF0aW9uKCkrDQogICAgc3RhdF9wb2x5X2xpbmUoKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAxMTAwICsgMC4zOXgiLCB4ID0gMTk3MCwgeSA9IDQwMCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMzQwICsgMC4wMXgiLCB4ID0gMTk3MCwgeSA9IDM3NSkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gLTc0MCArIDAuNTV4IiwgeCA9IDE5NzAsIHkgPSAzNTApKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDE0MDAgLSAwLjU3eCIsIHggPSAxOTgwLCB5ID0gMzI1KSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA4NjAgLSAwLjI5eCIsIHggPSAxOTcwLCB5ID0gMzEwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAxNzAwIC0gMC43NXgiLCB4ID0gMTk3MCwgeSA9IDI3NSkrDQogICAgc2NhbGVfY29sb3JfdmlyaWRpc19kKCkrDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSsNCiAgICBsYWJzKHRpdGxlID0gTlVMTCwNCiAgICAgICAgIHkgPSAiTWVhbiBMZW5ndGgtYXQtQWdlIChtbSkiLA0KICAgICAgICAgeCA9ICJZZWFyIikrDQogICAgZ3VpZGVzKGZpbGwgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiQWdlIiwgcmV2ZXJzZSA9IFQpLCBjb2xvciA9IGd1aWRlX2xlZ2VuZCh0aXRsZSA9ICJBZ2UiLCByZXZlcnNlID0gVCkpKw0KICAgIHRoZW1lX2J3KCkNCikNCg0KDQpnZ3NhdmUoZmlsZW5hbWUgPSAifi9HaXRIdWIvRUFHRVJfZ3Jvd3RoL091dHB1dHMvRmlndXJlcy9MaW5lYXIgTW9kZWxzL2NvcmFydF9tYXJnaW5hbF9lZmZlY3RzX3Bsb3QudGlmZiIsIA0KICAgICAgIGNvcmFydC5tYXJnaW5hbC5wbG90LCANCiAgICAgICBkcGkgPSAzMDAsIHdpZHRoID0gMjAwLCBoZWlnaHQgPSAxNTAsIHVuaXRzID0gIm1tIikNCmBgYA0KDQoNCg0KDQojIyBXaGl0ZSBTdWNrZXINCg0KIyMjIE1vZGVsDQpgYGB7cn0NCiNmaWx0ZXIgZGF0YSBmb3Igb25seSBCbGFjayBDcmFwcGllLCBQb21vb3hpcyBuaWdyb21hY3VsYXR1cyANCmNhdGNvbSA8LSBhbGwuZ3Jvdy5tZXJnZSAlPiUgZmlsdGVyKHNwZWNpZXMgPT0gImNvbW1vbl93aGl0ZV9zdWNrZXIiKSAlPiUgDQogIGZpbHRlcihhZ2VfZ3JvdXAgJWluJSBjKDEsIDIsIDMsIDQsIDUpLCAjbWF0Y2ggYWdlIGdyb3VwcyBpbiBCUlRzDQogICAgICAgICAhaXMubmEoYWdlX2dyb3VwKSwgIWlzLm5hKGJlZ2luX2RhdGVfeWVhciksICFpcy5uYShsZW5ndGhfbWVhbl9tbSksDQogICAgICAgICAhaXMubmEobG9nX21heF9kZXB0aCksICFpcy5uYShsb2dhcmVhKSkNCg0KI2xpbmVhciBtb2RlbA0KY2F0Y29tLmxtIDwtIGxtKGxlbmd0aF9tZWFuX21tIH4gYmVnaW5fZGF0ZV95ZWFyKmFnZV9ncm91cCArIGxvZ19tYXhfZGVwdGggKyBsb2dhcmVhICsgZG95LCBkYXRhID0gY2F0Y29tKQ0Kc3VtbWFyeShjYXRjb20ubG0pDQoNCiNjYWxjdWxhdGUgYW5kIGludGVycHJldCBlZmZlY3Qgc2l6ZXMNCmV0YV9zcXVhcmVkKGNhdGNvbS5sbSkNCiNpbnRlcnByZXQoZXRhX3NxdWFyZWQoY2F0Y29tLmxtKSwgcnVsZXMgPSAiY29oZW4xOTkyIikNCg0KI2NhbGN1bGF0ZSBBSUMgc2NvcmUNCkFJQyhjYXRjb20ubG0pDQoNCiNleGFtaW5lIG1vZGVsIGZpdA0KdGVzdERpc3BlcnNpb24oY2F0Y29tLmxtKQ0KDQpzaW11bGF0aW9uLm91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IGNhdGNvbS5sbSkNCg0KcmVzaWR1YWxzKGNhdGNvbS5sbSkNCnJlc2lkdWFscyhjYXRjb20ubG0sIHF1YW50aWxlRnVuY3Rpb24gPSBxbm9ybSkNCg0KcGxvdChjYXRjb20ubG0pDQpgYGANCg0KIyMjIFBvc3QtaG9jIGNvbXBhcmlzb25zDQpgYGB7cn0NCmNhdGNvbS5lbW0gPC0gZW1tZWFucyhjYXRjb20ubG0sIH4gYmVnaW5fZGF0ZV95ZWFyKmFnZV9ncm91cCkNCnBhaXJzKGNhdGNvbS5lbW0sIHNpbXBsZSA9ICJhZ2VfZ3JvdXAiKQ0KdGVzdChwYWlycyhjYXRjb20uZW1tLCBieSA9ICJiZWdpbl9kYXRlX3llYXIiKSwgYnkgPSBOVUxMLCBhZGp1c3QgPSAibXZ0IikNCg0KI2V4cG9ydCB0YWJsZXMNCiMgI2ludGVycHJldChldGFfc3F1YXJlZChjYXRjb20ubG0pLCBydWxlcyA9ICJjb2hlbjE5OTIiKSAlPiUNCiMgICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9jYXRjb21fZXRhX3NxdWFyZWQuY3N2IikNCg0KI3Nsb3BlIGNvbnRyYXN0cw0KIyBPYnRhaW4gc2xvcGUgZXN0aW1hdGVzDQpjYXRjb20uc2xvcGVzIDwtIGVtdHJlbmRzKGNhdGNvbS5sbSwgfmFnZV9ncm91cCwgdmFyID0gImJlZ2luX2RhdGVfeWVhciIpDQojIENvbXBhcmUgZXN0aW1hdGVkIHNsb3BlcyB0byAwDQpjYXRjb20uc2xvcGUuY29udHJhc3RzIDwtIHRlc3QoY2F0Y29tLnNsb3BlcykgJT4lIA0KICBtdXRhdGUoU3BlY2llcyA9ICJXaGl0ZSBTdWNrZXIiKSAlPiUgDQogIHJlbmFtZShBZ2UgPSBhZ2VfZ3JvdXApDQoNCmNhdGNvbS5zbG9wZS5jb250cmFzdHMgJT4lDQogIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL2NhdGNvbV9lbW1lYW5zLmNzdiIpDQpgYGANCg0KIyMjIFBsb3QgcmF3IGRhdGENCmBgYHtyfQ0KKGNhdGNvbS5sZW5ndGgueWVhci5wbG90IDwtIGdncGxvdChkYXRhID0gY2F0Y29tICU+JSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZShBZ2UgPSBhcy5mYWN0b3IoYWdlX2dyb3VwKSksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gYmVnaW5fZGF0ZV95ZWFyLCB5ID0gbGVuZ3RoX21lYW5fbW0sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IEFnZSwgZmlsbCA9IEFnZSwgZ3JvdXAgPSBBZ2UpKSsNCiAgICAjZ2VvbV9wb2ludCgpKw0KICAgIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpKw0KICAgIHN0YXRfcG9seV9lcSh1c2VfbGFiZWwoImVxIikpKw0KICAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpKw0KICAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkrDQogICAgbGFicyh5ID0gIkxlbmd0aCAobW0pIiwgeCA9ICJZZWFyIikrDQogICAgdGhlbWVfYncoKQ0KKQ0KDQpgYGANCiMjIyBNYXJnaW5hbCBFZmZlY3RzDQpgYGB7cn0NCnJlc3VsdCA8LSBwcmVkaWN0X3Jlc3BvbnNlKGNhdGNvbS5sbSwgYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKQ0KDQojIHBsb3QocmVzdWx0KQ0KIyB0ZXN0X3ByZWRpY3Rpb25zKHJlc3VsdCkgJT4lIA0KIyAgIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL2NhdGNvbV9wYWlyd2lzZV9sZW5ndGhfdGltZV9zbG9wZXMuY3N2Iiwgcm93Lm5hbWVzID0gRikNCg0KKGNhdGNvbS5tYXJnaW5hbC5wbG90IDwtIGdncHJlZGljdChjYXRjb20ubG0sIHRlcm1zID0gYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKSAlPiUgIA0KICAgIHBsb3QoKSsNCiAgICAjc3RhdF9wb2x5X2VxKHVzZV9sYWJlbCgiZXEiKSkrDQogICAgc3RhdF9yZWdsaW5lX2VxdWF0aW9uKCkrDQogICAgc3RhdF9wb2x5X2xpbmUoKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAyNDAwIC0gMC45OXgiLCB4ID0gMjAwMCwgeSA9IDQ1MCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gNDMwMCAtIDJ4IiwgeCA9IDIwMDAsIHkgPSA0MDApKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDQzMDAgLSAyeCIsIHggPSAyMDAwLCB5ID0gMzUwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAzNzAwIC0gMS43eCIsIHggPSAyMDAwLCB5ID0gMzAwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAyNjAwIC0gMS4yeCIsIHggPSAyMDAwLCB5ID0gMjAwKSsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoKSsNCiAgICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgpKw0KICAgIGxhYnModGl0bGUgPSBOVUxMLA0KICAgICAgICAgeSA9ICJNZWFuIExlbmd0aC1hdC1BZ2UgKG1tKSIsDQogICAgICAgICB4ID0gIlllYXIiKSsNCiAgICBndWlkZXMoZmlsbCA9IGd1aWRlX2xlZ2VuZCh0aXRsZSA9ICJBZ2UiLCByZXZlcnNlID0gVCksIGNvbG9yID0gZ3VpZGVfbGVnZW5kKHRpdGxlID0gIkFnZSIsIHJldmVyc2UgPSBUKSkrDQogICAgdGhlbWVfYncoKQ0KKQ0KDQoNCmdnc2F2ZShmaWxlbmFtZSA9ICJ+L0dpdEh1Yi9FQUdFUl9ncm93dGgvT3V0cHV0cy9GaWd1cmVzL0xpbmVhciBNb2RlbHMvY2F0Y29tX21hcmdpbmFsX2VmZmVjdHNfcGxvdC50aWZmIiwgDQogICAgICAgY2F0Y29tLm1hcmdpbmFsLnBsb3QsIA0KICAgICAgIGRwaSA9IDMwMCwgd2lkdGggPSAyMDAsIGhlaWdodCA9IDE1MCwgdW5pdHMgPSAibW0iKQ0KYGBgDQoNCg0KDQoNCiMjIExhcmdlbW91dGggQmFzcw0KDQojIyMgTW9kZWwNCmBgYHtyfQ0KI2ZpbHRlciBkYXRhIGZvciBvbmx5IEJsYWNrIENyYXBwaWUsIFBvbW9veGlzIG5pZ3JvbWFjdWxhdHVzIA0KbWljc2FsIDwtIGFsbC5ncm93Lm1lcmdlICU+JSBmaWx0ZXIoc3BlY2llcyA9PSAibGFyZ2Vtb3V0aF9iYXNzIikgJT4lIA0KICBmaWx0ZXIoIWFnZV9ncm91cCAlaW4lIGMoMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIpLCAjbWF0Y2ggYWdlIGdyb3VwcyBpbiBCUlRzDQogICAgICAgICAhaXMubmEoYWdlX2dyb3VwKSwgIWlzLm5hKGJlZ2luX2RhdGVfeWVhciksICFpcy5uYShsZW5ndGhfbWVhbl9tbSksDQogICAgICAgICAhaXMubmEobG9nX21heF9kZXB0aCksICFpcy5uYShsb2dhcmVhKSkNCg0KI2xpbmVhciBtb2RlbA0KbWljc2FsLmxtIDwtIGxtKGxlbmd0aF9tZWFuX21tIH4gYmVnaW5fZGF0ZV95ZWFyKmFnZV9ncm91cCArIGxvZ19tYXhfZGVwdGggKyBsb2dhcmVhICsgZG95LCBkYXRhID0gbWljc2FsKQ0Kc3VtbWFyeShtaWNzYWwubG0pDQoNCiNjYWxjdWxhdGUgYW5kIGludGVycHJldCBlZmZlY3Qgc2l6ZXMNCmV0YV9zcXVhcmVkKG1pY3NhbC5sbSkNCiNpbnRlcnByZXQoZXRhX3NxdWFyZWQobWljc2FsLmxtKSwgcnVsZXMgPSAiY29oZW4xOTkyIikNCg0KI2NhbGN1bGF0ZSBBSUMgc2NvcmUNCkFJQyhtaWNzYWwubG0pDQoNCiNleGFtaW5lIG1vZGVsIGZpdA0KdGVzdERpc3BlcnNpb24obWljc2FsLmxtKQ0KDQpzaW11bGF0aW9uLm91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IG1pY3NhbC5sbSkNCg0KcmVzaWR1YWxzKG1pY3NhbC5sbSkNCnJlc2lkdWFscyhtaWNzYWwubG0sIHF1YW50aWxlRnVuY3Rpb24gPSBxbm9ybSkNCg0KcGxvdChtaWNzYWwubG0pDQpgYGANCg0KIyMjIFBvc3QtaG9jIGNvbXBhcmlzb25zDQpgYGB7cn0NCm1pY3NhbC5lbW0gPC0gZW1tZWFucyhtaWNzYWwubG0sIH4gYmVnaW5fZGF0ZV95ZWFyKmFnZV9ncm91cCkNCnBhaXJzKG1pY3NhbC5lbW0sIHNpbXBsZSA9ICJhZ2VfZ3JvdXAiKQ0KdGVzdChwYWlycyhtaWNzYWwuZW1tLCBieSA9ICJiZWdpbl9kYXRlX3llYXIiKSwgYnkgPSBOVUxMLCBhZGp1c3QgPSAibXZ0IikNCg0KI2V4cG9ydCB0YWJsZXMNCiMgI2ludGVycHJldChldGFfc3F1YXJlZChtaWNzYWwubG0pLCBydWxlcyA9ICJjb2hlbjE5OTIiKSAlPiUNCiMgICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9taWNzYWxfZXRhX3NxdWFyZWQuY3N2IikNCg0KI3Nsb3BlIGNvbnRyYXN0cw0KIyBPYnRhaW4gc2xvcGUgZXN0aW1hdGVzDQptaWNzYWwuc2xvcGVzIDwtIGVtdHJlbmRzKG1pY3NhbC5sbSwgfmFnZV9ncm91cCwgdmFyID0gImJlZ2luX2RhdGVfeWVhciIpDQojIENvbXBhcmUgZXN0aW1hdGVkIHNsb3BlcyB0byAwDQptaWNzYWwuc2xvcGUuY29udHJhc3RzIDwtIHRlc3QobWljc2FsLnNsb3BlcykgJT4lIA0KICBtdXRhdGUoU3BlY2llcyA9ICJMYXJnZW1vdXRoIEJhc3MiKSAlPiUgDQogIHJlbmFtZShBZ2UgPSBhZ2VfZ3JvdXApDQoNCm1pY3NhbC5zbG9wZS5jb250cmFzdHMgJT4lDQogIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL21pY3NhbF9lbW1lYW5zLmNzdiIpDQpgYGANCg0KIyMjIFBsb3QgcmF3IGRhdGENCmBgYHtyfQ0KKG1pY3NhbC5sZW5ndGgueWVhci5wbG90IDwtIGdncGxvdChkYXRhID0gbWljc2FsICU+JSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZShBZ2UgPSBhcy5mYWN0b3IoYWdlX2dyb3VwKSksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gYmVnaW5fZGF0ZV95ZWFyLCB5ID0gbGVuZ3RoX21lYW5fbW0sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IEFnZSwgZmlsbCA9IEFnZSwgZ3JvdXAgPSBBZ2UpKSsNCiAgICAjZ2VvbV9wb2ludCgpKw0KICAgIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpKw0KICAgIHN0YXRfcG9seV9lcSh1c2VfbGFiZWwoImVxIikpKw0KICAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpKw0KICAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkrDQogICAgbGFicyh5ID0gIkxlbmd0aCAobW0pIiwgeCA9ICJZZWFyIikrDQogICAgdGhlbWVfYncoKQ0KKQ0KDQpgYGANCiMjIyBNYXJnaW5hbCBFZmZlY3RzDQpgYGB7cn0NCnJlc3VsdCA8LSBwcmVkaWN0X3Jlc3BvbnNlKG1pY3NhbC5sbSwgYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKQ0KDQojIHBsb3QocmVzdWx0KQ0KIyB0ZXN0X3ByZWRpY3Rpb25zKHJlc3VsdCkgJT4lIA0KIyAgIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL21pY3NhbF9wYWlyd2lzZV9sZW5ndGhfdGltZV9zbG9wZXMuY3N2Iiwgcm93Lm5hbWVzID0gRikNCg0KKG1pY3NhbC5tYXJnaW5hbC5wbG90IDwtIGdncHJlZGljdChtaWNzYWwubG0sIHRlcm1zID0gYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKSAlPiUgIA0KICAgIHBsb3QoKSsNCiAgICAjc3RhdF9wb2x5X2VxKHVzZV9sYWJlbCgiZXEiKSkrDQogICAgc3RhdF9yZWdsaW5lX2VxdWF0aW9uKCkrDQogICAgc3RhdF9wb2x5X2xpbmUoKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA3NyArIDAuMDd4IiwgeCA9IDIwMDAsIHkgPSAyMjQpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDIxICsgMC4wOTN4IiwgeCA9IDIwMDAsIHkgPSAyMTIpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IC02NCArIDAuMTN4IiwgeCA9IDIwMDAsIHkgPSAxOTkpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDIzMCAtIDAuMDI4eCIsIHggPSAyMDAwLCB5ID0gMTgyKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA2MTAgLSAwLjIzeCIsIHggPSAyMDAwLCB5ID0gMTYwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA5MjAgLSAwLjM5eCIsIHggPSAyMDAwLCB5ID0gMTM3KSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAxMjAwIC0gMC41NXgiLCB4ID0gMjAwMCwgeSA9IDExMCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMTcwMCAtIDAuODN4IiwgeCA9IDIwMDAsIHkgPSA4MCkrDQogICAgc2NhbGVfY29sb3JfdmlyaWRpc19kKCkrDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSsNCiAgICBsYWJzKHRpdGxlID0gTlVMTCwNCiAgICAgICAgIHkgPSAiTWVhbiBMZW5ndGgtYXQtQWdlIChtbSkiLA0KICAgICAgICAgeCA9ICJZZWFyIikrDQogICAgZ3VpZGVzKGZpbGwgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiQWdlIiwgcmV2ZXJzZSA9IFQpLCBjb2xvciA9IGd1aWRlX2xlZ2VuZCh0aXRsZSA9ICJBZ2UiLCByZXZlcnNlID0gVCkpKw0KICAgIHRoZW1lX2J3KCkNCikNCg0KDQpnZ3NhdmUoZmlsZW5hbWUgPSAifi9HaXRIdWIvRUFHRVJfZ3Jvd3RoL091dHB1dHMvRmlndXJlcy9MaW5lYXIgTW9kZWxzL21pY3NhbF9tYXJnaW5hbF9lZmZlY3RzX3Bsb3QudGlmZiIsIA0KICAgICAgIG1pY3NhbC5tYXJnaW5hbC5wbG90LCANCiAgICAgICBkcGkgPSAzMDAsIHdpZHRoID0gMjAwLCBoZWlnaHQgPSAxNTAsIHVuaXRzID0gIm1tIikNCmBgYA0KDQoNCg0KDQojIyBOb3J0aGVybiBQaWtlDQoNCiMjIyBNb2RlbA0KYGBge3J9DQojZmlsdGVyIGRhdGEgZm9yIG9ubHkgQmxhY2sgQ3JhcHBpZSwgUG9tb294aXMgbmlncm9tYWN1bGF0dXMgDQplc29sdWMgPC0gYWxsLmdyb3cubWVyZ2UgJT4lIGZpbHRlcihzcGVjaWVzID09ICJub3J0aGVybl9waWtlIikgJT4lIA0KICBmaWx0ZXIoIWFnZV9ncm91cCAlaW4lIGMoMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiksICNtYXRjaCBhZ2UgZ3JvdXBzIGluIEJSVHMNCiAgICAgICAgICFpcy5uYShhZ2VfZ3JvdXApLCAhaXMubmEoYmVnaW5fZGF0ZV95ZWFyKSwgIWlzLm5hKGxlbmd0aF9tZWFuX21tKSwNCiAgICAgICAgICFpcy5uYShsb2dfbWF4X2RlcHRoKSwgIWlzLm5hKGxvZ2FyZWEpKQ0KDQojbGluZWFyIG1vZGVsDQplc29sdWMubG0gPC0gbG0obGVuZ3RoX21lYW5fbW0gfiBiZWdpbl9kYXRlX3llYXIqYWdlX2dyb3VwICsgbG9nX21heF9kZXB0aCArIGxvZ2FyZWEgKyBkb3ksIGRhdGEgPSBlc29sdWMpDQpzdW1tYXJ5KGVzb2x1Yy5sbSkNCg0KI2NhbGN1bGF0ZSBhbmQgaW50ZXJwcmV0IGVmZmVjdCBzaXplcw0KZXRhX3NxdWFyZWQoZXNvbHVjLmxtKQ0KI2ludGVycHJldChldGFfc3F1YXJlZChlc29sdWMubG0pLCBydWxlcyA9ICJjb2hlbjE5OTIiKQ0KDQojY2FsY3VsYXRlIEFJQyBzY29yZQ0KQUlDKGVzb2x1Yy5sbSkNCg0KI2V4YW1pbmUgbW9kZWwgZml0DQp0ZXN0RGlzcGVyc2lvbihlc29sdWMubG0pDQoNCnNpbXVsYXRpb24ub3V0cHV0IDwtIHNpbXVsYXRlUmVzaWR1YWxzKGZpdHRlZE1vZGVsID0gZXNvbHVjLmxtKQ0KDQpyZXNpZHVhbHMoZXNvbHVjLmxtKQ0KcmVzaWR1YWxzKGVzb2x1Yy5sbSwgcXVhbnRpbGVGdW5jdGlvbiA9IHFub3JtKQ0KDQpwbG90KGVzb2x1Yy5sbSkNCmBgYA0KDQojIyMgUG9zdC1ob2MgY29tcGFyaXNvbnMNCmBgYHtyfQ0KZXNvbHVjLmVtbSA8LSBlbW1lYW5zKGVzb2x1Yy5sbSwgfiBiZWdpbl9kYXRlX3llYXIqYWdlX2dyb3VwKQ0KcGFpcnMoZXNvbHVjLmVtbSwgc2ltcGxlID0gImFnZV9ncm91cCIpDQp0ZXN0KHBhaXJzKGVzb2x1Yy5lbW0sIGJ5ID0gImJlZ2luX2RhdGVfeWVhciIpLCBieSA9IE5VTEwsIGFkanVzdCA9ICJtdnQiKQ0KDQojZXhwb3J0IHRhYmxlcw0KIyAjaW50ZXJwcmV0KGV0YV9zcXVhcmVkKGVzb2x1Yy5sbSksIHJ1bGVzID0gImNvaGVuMTk5MiIpICU+JQ0KIyAgIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL2Vzb2x1Y19ldGFfc3F1YXJlZC5jc3YiKQ0KDQojc2xvcGUgY29udHJhc3RzDQojIE9idGFpbiBzbG9wZSBlc3RpbWF0ZXMNCmVzb2x1Yy5zbG9wZXMgPC0gZW10cmVuZHMoZXNvbHVjLmxtLCB+YWdlX2dyb3VwLCB2YXIgPSAiYmVnaW5fZGF0ZV95ZWFyIikNCiMgQ29tcGFyZSBlc3RpbWF0ZWQgc2xvcGVzIHRvIDANCmVzb2x1Yy5zbG9wZS5jb250cmFzdHMgPC0gdGVzdChlc29sdWMuc2xvcGVzKSAlPiUgDQogIG11dGF0ZShTcGVjaWVzID0gIk5vcnRoZXJuIFBpa2UiKSAlPiUgDQogIHJlbmFtZShBZ2UgPSBhZ2VfZ3JvdXApDQoNCmVzb2x1Yy5zbG9wZS5jb250cmFzdHMgJT4lDQogIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL2Vzb2x1Y19lbW1lYW5zLmNzdiIpDQpgYGANCg0KIyMjIFBsb3QgcmF3IGRhdGENCmBgYHtyfQ0KKGVzb2x1Yy5sZW5ndGgueWVhci5wbG90IDwtIGdncGxvdChkYXRhID0gZXNvbHVjICU+JSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZShBZ2UgPSBhcy5mYWN0b3IoYWdlX2dyb3VwKSksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gYmVnaW5fZGF0ZV95ZWFyLCB5ID0gbGVuZ3RoX21lYW5fbW0sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IEFnZSwgZmlsbCA9IEFnZSwgZ3JvdXAgPSBBZ2UpKSsNCiAgICAjZ2VvbV9wb2ludCgpKw0KICAgIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpKw0KICAgIHN0YXRfcG9seV9lcSh1c2VfbGFiZWwoImVxIikpKw0KICAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpKw0KICAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkrDQogICAgbGFicyh5ID0gIkxlbmd0aCAobW0pIiwgeCA9ICJZZWFyIikrDQogICAgdGhlbWVfYncoKQ0KKQ0KDQpgYGANCiMjIyBNYXJnaW5hbCBFZmZlY3RzDQpgYGB7cn0NCnJlc3VsdCA8LSBwcmVkaWN0X3Jlc3BvbnNlKGVzb2x1Yy5sbSwgYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKQ0KDQojIHBsb3QocmVzdWx0KQ0KIyB0ZXN0X3ByZWRpY3Rpb25zKHJlc3VsdCkgJT4lIA0KIyAgIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL2Vzb2x1Y19wYWlyd2lzZV9sZW5ndGhfdGltZV9zbG9wZXMuY3N2Iiwgcm93Lm5hbWVzID0gRikNCg0KKGVzb2x1Yy5tYXJnaW5hbC5wbG90IDwtIGdncHJlZGljdChlc29sdWMubG0sIHRlcm1zID0gYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKSAlPiUgIA0KICAgIHBsb3QoKSsNCiAgICAjc3RhdF9wb2x5X2VxKHVzZV9sYWJlbCgiZXEiKSkrDQogICAgc3RhdF9yZWdsaW5lX2VxdWF0aW9uKCkrDQogICAgc3RhdF9wb2x5X2xpbmUoKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAxLjNFNCAtIDUuNXgiLCB4ID0gMTk1MCwgeSA9IDEzMDApKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDkuMUUzIC0gNC4xeCIsIHggPSAxOTUwLCB5ID0gMTE1MCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gOC45RTMgLSA0LjF4IiwgeCA9IDE5NTAsIHkgPSAxMDUwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA2LjVFMyAtIDIuOXgiLCB4ID0gMTk1MCwgeSA9IDkyNSkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gNS4yRTMgLSAyLjJ4IiwgeCA9IDE5NTAsIHkgPSA4NTApKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDMuNEUzIC0gMS40eCIsIHggPSAxOTUwLCB5ID0gNzUwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAyLjZFMyAtIDF4IiwgeCA9IDE5NTAsIHkgPSA2ODApKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDEuOEUzIC0gMC42NHgiLCB4ID0gMTk1MCwgeSA9IDYxNSkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMi40RTMgLSAwLjk5eCIsIHggPSAxOTUwLCB5ID0gNTUwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAzLjJFMyAtIDEuNHgiLCB4ID0gMTk1MCwgeSA9IDQ2MCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gNC4zRTMgLSAyLjF4IiwgeCA9IDE5NTAsIHkgPSAzNzUpKw0KICAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpKw0KICAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkrDQogICAgbGFicyh0aXRsZSA9IE5VTEwsDQogICAgICAgICB5ID0gIk1lYW4gTGVuZ3RoLWF0LUFnZSAobW0pIiwNCiAgICAgICAgIHggPSAiWWVhciIpKw0KICAgIGd1aWRlcyhmaWxsID0gZ3VpZGVfbGVnZW5kKHRpdGxlID0gIkFnZSIsIHJldmVyc2UgPSBUKSwgY29sb3IgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiQWdlIiwgcmV2ZXJzZSA9IFQpKSsNCiAgICB0aGVtZV9idygpDQopDQoNCg0KZ2dzYXZlKGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9lc29sdWNfbWFyZ2luYWxfZWZmZWN0c19wbG90LnRpZmYiLCANCiAgICAgICBlc29sdWMubWFyZ2luYWwucGxvdCwgDQogICAgICAgZHBpID0gMzAwLCB3aWR0aCA9IDIwMCwgaGVpZ2h0ID0gMTUwLCB1bml0cyA9ICJtbSIpDQpgYGANCg0KIyMgUHVtcGtpbnNlZWQgU3VuZmlzaA0KDQojIyMgTW9kZWwNCmBgYHtyfQ0KI2ZpbHRlciBkYXRhIGZvciBvbmx5IEJsYWNrIENyYXBwaWUsIFBvbW9veGlzIG5pZ3JvbWFjdWxhdHVzIA0KbGVwZ2liIDwtIGFsbC5ncm93Lm1lcmdlICU+JSBmaWx0ZXIoc3BlY2llcyA9PSAicHVtcGtpbnNlZWRfc3VuZmlzaCIpICU+JSANCiAgZmlsdGVyKGFnZV9ncm91cCAlaW4lIGMoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTApLCAjbWF0Y2ggYWdlIGdyb3VwcyBpbiBCUlRzDQogICAgICAgICAhaXMubmEoYWdlX2dyb3VwKSwgIWlzLm5hKGJlZ2luX2RhdGVfeWVhciksICFpcy5uYShsZW5ndGhfbWVhbl9tbSksDQogICAgICAgICAhaXMubmEobG9nX21heF9kZXB0aCksICFpcy5uYShsb2dhcmVhKSkNCg0KI2xpbmVhciBtb2RlbA0KbGVwZ2liLmxtIDwtIGxtKGxlbmd0aF9tZWFuX21tIH4gYmVnaW5fZGF0ZV95ZWFyKmFnZV9ncm91cCArIGxvZ19tYXhfZGVwdGggKyBsb2dhcmVhICsgZG95LCBkYXRhID0gbGVwZ2liKQ0Kc3VtbWFyeShsZXBnaWIubG0pDQoNCiNjYWxjdWxhdGUgYW5kIGludGVycHJldCBlZmZlY3Qgc2l6ZXMNCmV0YV9zcXVhcmVkKGxlcGdpYi5sbSkNCiNpbnRlcnByZXQoZXRhX3NxdWFyZWQobGVwZ2liLmxtKSwgcnVsZXMgPSAiY29oZW4xOTkyIikNCg0KI2NhbGN1bGF0ZSBBSUMgc2NvcmUNCkFJQyhsZXBnaWIubG0pDQoNCiNleGFtaW5lIG1vZGVsIGZpdA0KdGVzdERpc3BlcnNpb24obGVwZ2liLmxtKQ0KDQpzaW11bGF0aW9uLm91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IGxlcGdpYi5sbSkNCg0KcmVzaWR1YWxzKGxlcGdpYi5sbSkNCnJlc2lkdWFscyhsZXBnaWIubG0sIHF1YW50aWxlRnVuY3Rpb24gPSBxbm9ybSkNCg0KcGxvdChsZXBnaWIubG0pDQpgYGANCg0KIyMjIFBvc3QtaG9jIGNvbXBhcmlzb25zDQpgYGB7cn0NCmxlcGdpYi5lbW0gPC0gZW1tZWFucyhsZXBnaWIubG0sIH4gYmVnaW5fZGF0ZV95ZWFyKmFnZV9ncm91cCkNCnBhaXJzKGxlcGdpYi5lbW0sIHNpbXBsZSA9ICJhZ2VfZ3JvdXAiKQ0KdGVzdChwYWlycyhsZXBnaWIuZW1tLCBieSA9ICJiZWdpbl9kYXRlX3llYXIiKSwgYnkgPSBOVUxMLCBhZGp1c3QgPSAibXZ0IikNCg0KI2V4cG9ydCB0YWJsZXMNCiMgI2ludGVycHJldChldGFfc3F1YXJlZChsZXBnaWIubG0pLCBydWxlcyA9ICJjb2hlbjE5OTIiKSAlPiUNCiMgICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9sZXBnaWJfZXRhX3NxdWFyZWQuY3N2IikNCg0KI3Nsb3BlIGNvbnRyYXN0cw0KIyBPYnRhaW4gc2xvcGUgZXN0aW1hdGVzDQpsZXBnaWIuc2xvcGVzIDwtIGVtdHJlbmRzKGxlcGdpYi5sbSwgfmFnZV9ncm91cCwgdmFyID0gImJlZ2luX2RhdGVfeWVhciIpDQojIENvbXBhcmUgZXN0aW1hdGVkIHNsb3BlcyB0byAwDQpsZXBnaWIuc2xvcGUuY29udHJhc3RzIDwtIHRlc3QobGVwZ2liLnNsb3BlcykgJT4lIA0KICBtdXRhdGUoU3BlY2llcyA9ICJQdW1wa2luc2VlZCBTdW5maXNoIikgJT4lIA0KICByZW5hbWUoQWdlID0gYWdlX2dyb3VwKQ0KDQpsZXBnaWIuc2xvcGUuY29udHJhc3RzICU+JQ0KICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9sZXBnaWJfZW1tZWFucy5jc3YiKQ0KYGBgDQoNCiMjIyBQbG90IHJhdyBkYXRhDQpgYGB7cn0NCihsZXBnaWIubGVuZ3RoLnllYXIucGxvdCA8LSBnZ3Bsb3QoZGF0YSA9IGxlcGdpYiAlPiUgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGUoQWdlID0gYXMuZmFjdG9yKGFnZV9ncm91cCkpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IGJlZ2luX2RhdGVfeWVhciwgeSA9IGxlbmd0aF9tZWFuX21tLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBBZ2UsIGZpbGwgPSBBZ2UsIGdyb3VwID0gQWdlKSkrDQogICAgI2dlb21fcG9pbnQoKSsNCiAgICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKSsNCiAgICBzdGF0X3BvbHlfZXEodXNlX2xhYmVsKCJlcSIpKSsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoKSsNCiAgICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgpKw0KICAgIGxhYnMoeSA9ICJMZW5ndGggKG1tKSIsIHggPSAiWWVhciIpKw0KICAgIHRoZW1lX2J3KCkNCikNCg0KYGBgDQojIyMgTWFyZ2luYWwgRWZmZWN0cw0KYGBge3J9DQpyZXN1bHQgPC0gcHJlZGljdF9yZXNwb25zZShsZXBnaWIubG0sIGMoImJlZ2luX2RhdGVfeWVhciIsICJhZ2VfZ3JvdXAiKSkNCg0KIyBwbG90KHJlc3VsdCkNCiMgdGVzdF9wcmVkaWN0aW9ucyhyZXN1bHQpICU+JSANCiMgICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9sZXBnaWJfcGFpcndpc2VfbGVuZ3RoX3RpbWVfc2xvcGVzLmNzdiIsIHJvdy5uYW1lcyA9IEYpDQoNCihsZXBnaWIubWFyZ2luYWwucGxvdCA8LSBnZ3ByZWRpY3QobGVwZ2liLmxtLCB0ZXJtcyA9IGMoImJlZ2luX2RhdGVfeWVhciIsICJhZ2VfZ3JvdXAiKSkgJT4lICANCiAgICBwbG90KCkrDQogICAgI3N0YXRfcG9seV9lcSh1c2VfbGFiZWwoImVxIikpKw0KICAgIHN0YXRfcmVnbGluZV9lcXVhdGlvbigpKw0KICAgIHN0YXRfcG9seV9saW5lKCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gLTIyMCArIDAuMjJ4IiwgeCA9IDE5OTAsIHkgPSAyMjApKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IC0xLjcgKyAwLjExeCIsIHggPSAxOTkwLCB5ID0gMjEzKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAtNjQgKyAwLjEzeCIsIHggPSAxOTkwLCB5ID0gMjA1KSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAzMDAgKyAwLjI1eCIsIHggPSAxOTkwLCB5ID0gMTk1KSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAtMTcwICsgMC4xOHgiLCB4ID0gMTk5MCwgeSA9IDE4NSkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gLTE0MCArIDAuMTV4IiwgeCA9IDE5OTAsIHkgPSAxNzMpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDQyICsgMC4wNngiLCB4ID0gMTk5MCwgeSA9IDE2MCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMzIwIC0gMC4wOXgiLCB4ID0gMTk5MCwgeSA9IDE0MCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gODUwIC0gMC4zN3giLCB4ID0gMTk5MCwgeSA9IDExNSkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMS40RTMgLSAwLjY3eCIsIHggPSAxOTkwLCB5ID0gOTApKw0KICAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpKw0KICAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkrDQogICAgbGFicyh0aXRsZSA9IE5VTEwsDQogICAgICAgICB5ID0gIk1lYW4gTGVuZ3RoLWF0LUFnZSAobW0pIiwNCiAgICAgICAgIHggPSAiWWVhciIpKw0KICAgIGd1aWRlcyhmaWxsID0gZ3VpZGVfbGVnZW5kKHRpdGxlID0gIkFnZSIsIHJldmVyc2UgPSBUKSwgY29sb3IgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiQWdlIiwgcmV2ZXJzZSA9IFQpKSsNCiAgICB0aGVtZV9idygpDQopDQoNCg0KZ2dzYXZlKGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9sZXBnaWJfbWFyZ2luYWxfZWZmZWN0c19wbG90LnRpZmYiLCANCiAgICAgICBsZXBnaWIubWFyZ2luYWwucGxvdCwgDQogICAgICAgZHBpID0gMzAwLCB3aWR0aCA9IDIwMCwgaGVpZ2h0ID0gMTUwLCB1bml0cyA9ICJtbSIpDQpgYGANCg0KIyMgUmFpbmJvdyBUcm91dA0KDQojIyMgTW9kZWwNCmBgYHtyfQ0KI2ZpbHRlciBkYXRhIGZvciBvbmx5IEJsYWNrIENyYXBwaWUsIFBvbW9veGlzIG5pZ3JvbWFjdWxhdHVzIA0Kb25jbXlrIDwtIGFsbC5ncm93Lm1lcmdlICU+JSBmaWx0ZXIoc3BlY2llcyA9PSAicmFpbmJvd190cm91dCIpICU+JSANCiAgZmlsdGVyKGFnZV9ncm91cCAlaW4lIGMoMSwgMiwgMywgNCksICNtYXRjaCBhZ2UgZ3JvdXBzIGluIEJSVHMNCiAgICAgICAgICFpcy5uYShhZ2VfZ3JvdXApLCAhaXMubmEoYmVnaW5fZGF0ZV95ZWFyKSwgIWlzLm5hKGxlbmd0aF9tZWFuX21tKSwNCiAgICAgICAgICFpcy5uYShsb2dfbWF4X2RlcHRoKSwgIWlzLm5hKGxvZ2FyZWEpKQ0KDQojbGluZWFyIG1vZGVsDQpvbmNteWsubG0gPC0gbG0obGVuZ3RoX21lYW5fbW0gfiBiZWdpbl9kYXRlX3llYXIqYWdlX2dyb3VwICsgbG9nX21heF9kZXB0aCArIGxvZ2FyZWEgKyBkb3ksIGRhdGEgPSBvbmNteWspDQpzdW1tYXJ5KG9uY215ay5sbSkNCg0KI2NhbGN1bGF0ZSBhbmQgaW50ZXJwcmV0IGVmZmVjdCBzaXplcw0KZXRhX3NxdWFyZWQob25jbXlrLmxtKQ0KI2ludGVycHJldChldGFfc3F1YXJlZChvbmNteWsubG0pLCBydWxlcyA9ICJjb2hlbjE5OTIiKQ0KDQojY2FsY3VsYXRlIEFJQyBzY29yZQ0KQUlDKG9uY215ay5sbSkNCg0KI2V4YW1pbmUgbW9kZWwgZml0DQp0ZXN0RGlzcGVyc2lvbihvbmNteWsubG0pDQoNCnNpbXVsYXRpb24ub3V0cHV0IDwtIHNpbXVsYXRlUmVzaWR1YWxzKGZpdHRlZE1vZGVsID0gb25jbXlrLmxtKQ0KDQpyZXNpZHVhbHMob25jbXlrLmxtKQ0KcmVzaWR1YWxzKG9uY215ay5sbSwgcXVhbnRpbGVGdW5jdGlvbiA9IHFub3JtKQ0KDQpwbG90KG9uY215ay5sbSkNCmBgYA0KDQojIyMgUG9zdC1ob2MgY29tcGFyaXNvbnMNCmBgYHtyfQ0Kb25jbXlrLmVtbSA8LSBlbW1lYW5zKG9uY215ay5sbSwgfiBiZWdpbl9kYXRlX3llYXIqYWdlX2dyb3VwKQ0KcGFpcnMob25jbXlrLmVtbSwgc2ltcGxlID0gImFnZV9ncm91cCIpDQp0ZXN0KHBhaXJzKG9uY215ay5lbW0sIGJ5ID0gImJlZ2luX2RhdGVfeWVhciIpLCBieSA9IE5VTEwsIGFkanVzdCA9ICJtdnQiKQ0KDQojZXhwb3J0IHRhYmxlcw0KIyAjaW50ZXJwcmV0KGV0YV9zcXVhcmVkKG9uY215ay5sbSksIHJ1bGVzID0gImNvaGVuMTk5MiIpICU+JQ0KIyAgIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL29uY215a19ldGFfc3F1YXJlZC5jc3YiKQ0KDQojc2xvcGUgY29udHJhc3RzDQojIE9idGFpbiBzbG9wZSBlc3RpbWF0ZXMNCm9uY215ay5zbG9wZXMgPC0gZW10cmVuZHMob25jbXlrLmxtLCB+YWdlX2dyb3VwLCB2YXIgPSAiYmVnaW5fZGF0ZV95ZWFyIikNCiMgQ29tcGFyZSBlc3RpbWF0ZWQgc2xvcGVzIHRvIDANCm9uY215ay5zbG9wZS5jb250cmFzdHMgPC0gdGVzdChvbmNteWsuc2xvcGVzKSAlPiUgDQogIG11dGF0ZShTcGVjaWVzID0gIlJhaW5ib3cgVHJvdXQiKSAlPiUgDQogIHJlbmFtZShBZ2UgPSBhZ2VfZ3JvdXApDQoNCm9uY215ay5zbG9wZS5jb250cmFzdHMgJT4lDQogIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL29uY215a19lbW1lYW5zLmNzdiIpDQpgYGANCg0KIyMjIFBsb3QgcmF3IGRhdGENCmBgYHtyfQ0KKG9uY215ay5sZW5ndGgueWVhci5wbG90IDwtIGdncGxvdChkYXRhID0gb25jbXlrICU+JSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZShBZ2UgPSBhcy5mYWN0b3IoYWdlX2dyb3VwKSksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gYmVnaW5fZGF0ZV95ZWFyLCB5ID0gbGVuZ3RoX21lYW5fbW0sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IEFnZSwgZmlsbCA9IEFnZSwgZ3JvdXAgPSBBZ2UpKSsNCiAgICAjZ2VvbV9wb2ludCgpKw0KICAgIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpKw0KICAgIHN0YXRfcG9seV9lcSh1c2VfbGFiZWwoImVxIikpKw0KICAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpKw0KICAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkrDQogICAgbGFicyh5ID0gIkxlbmd0aCAobW0pIiwgeCA9ICJZZWFyIikrDQogICAgdGhlbWVfYncoKQ0KKQ0KDQpgYGANCiMjIyBNYXJnaW5hbCBFZmZlY3RzDQpgYGB7cn0NCnJlc3VsdCA8LSBwcmVkaWN0X3Jlc3BvbnNlKG9uY215ay5sbSwgYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKQ0KDQojIHBsb3QocmVzdWx0KQ0KIyB0ZXN0X3ByZWRpY3Rpb25zKHJlc3VsdCkgJT4lIA0KIyAgIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL29uY215a19wYWlyd2lzZV9sZW5ndGhfdGltZV9zbG9wZXMuY3N2Iiwgcm93Lm5hbWVzID0gRikNCg0KKG9uY215ay5tYXJnaW5hbC5wbG90IDwtIGdncHJlZGljdChvbmNteWsubG0sIHRlcm1zID0gYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKSAlPiUgIA0KICAgIHBsb3QoKSsNCiAgICAjc3RhdF9wb2x5X2VxKHVzZV9sYWJlbCgiZXEiKSkrDQogICAgc3RhdF9yZWdsaW5lX2VxdWF0aW9uKCkrDQogICAgc3RhdF9wb2x5X2xpbmUoKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAtNS44RTMgKyAzLjJ4IiwgeCA9IDIwMDAsIHkgPSA2MDApKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IC0yLjJFMyArIDEuM3giLCB4ID0gMjAwMCwgeSA9IDQ3NSkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gLTEuM0UzICsgMC44MngiLCB4ID0gMjAwMCwgeSA9IDM4MCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gOTIwIC0gMC4zM3giLCB4ID0gMjAwMCwgeSA9IDI4NSkrDQogICAgc2NhbGVfY29sb3JfdmlyaWRpc19kKCkrDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSsNCiAgICBsYWJzKHRpdGxlID0gTlVMTCwNCiAgICAgICAgIHkgPSAiTWVhbiBMZW5ndGgtYXQtQWdlIChtbSkiLA0KICAgICAgICAgeCA9ICJZZWFyIikrDQogICAgZ3VpZGVzKGZpbGwgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiQWdlIiwgcmV2ZXJzZSA9IFQpLCBjb2xvciA9IGd1aWRlX2xlZ2VuZCh0aXRsZSA9ICJBZ2UiLCByZXZlcnNlID0gVCkpKw0KICAgIHRoZW1lX2J3KCkNCikNCg0KDQpnZ3NhdmUoZmlsZW5hbWUgPSAifi9HaXRIdWIvRUFHRVJfZ3Jvd3RoL091dHB1dHMvRmlndXJlcy9MaW5lYXIgTW9kZWxzL29uY215a19tYXJnaW5hbF9lZmZlY3RzX3Bsb3QudGlmZiIsIA0KICAgICAgIG9uY215ay5tYXJnaW5hbC5wbG90LCANCiAgICAgICBkcGkgPSAzMDAsIHdpZHRoID0gMjAwLCBoZWlnaHQgPSAxNTAsIHVuaXRzID0gIm1tIikNCmBgYA0KDQojIyBSb2NrIEJhc3MNCg0KIyMjIE1vZGVsDQpgYGB7cn0NCiNmaWx0ZXIgZGF0YSBmb3Igb25seSBCbGFjayBDcmFwcGllLCBQb21vb3hpcyBuaWdyb21hY3VsYXR1cyANCmFtYnJ1cCA8LSBhbGwuZ3Jvdy5tZXJnZSAlPiUgZmlsdGVyKHNwZWNpZXMgPT0gInJvY2tfYmFzcyIpICU+JSANCiAgZmlsdGVyKGFnZV9ncm91cCAlaW4lIGMoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExKSwgI21hdGNoIGFnZSBncm91cHMgaW4gQlJUcw0KICAgICAgICAgIWlzLm5hKGFnZV9ncm91cCksICFpcy5uYShiZWdpbl9kYXRlX3llYXIpLCAhaXMubmEobGVuZ3RoX21lYW5fbW0pLA0KICAgICAgICAgIWlzLm5hKGxvZ19tYXhfZGVwdGgpLCAhaXMubmEobG9nYXJlYSkpDQoNCiNsaW5lYXIgbW9kZWwNCmFtYnJ1cC5sbSA8LSBsbShsZW5ndGhfbWVhbl9tbSB+IGJlZ2luX2RhdGVfeWVhciphZ2VfZ3JvdXAgKyBsb2dfbWF4X2RlcHRoICsgbG9nYXJlYSArIGRveSwgZGF0YSA9IGFtYnJ1cCkNCnN1bW1hcnkoYW1icnVwLmxtKQ0KDQojY2FsY3VsYXRlIGFuZCBpbnRlcnByZXQgZWZmZWN0IHNpemVzDQpldGFfc3F1YXJlZChhbWJydXAubG0pDQojaW50ZXJwcmV0KGV0YV9zcXVhcmVkKGFtYnJ1cC5sbSksIHJ1bGVzID0gImNvaGVuMTk5MiIpDQoNCiNjYWxjdWxhdGUgQUlDIHNjb3JlDQpBSUMoYW1icnVwLmxtKQ0KDQojZXhhbWluZSBtb2RlbCBmaXQNCnRlc3REaXNwZXJzaW9uKGFtYnJ1cC5sbSkNCg0Kc2ltdWxhdGlvbi5vdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBhbWJydXAubG0pDQoNCnJlc2lkdWFscyhhbWJydXAubG0pDQpyZXNpZHVhbHMoYW1icnVwLmxtLCBxdWFudGlsZUZ1bmN0aW9uID0gcW5vcm0pDQoNCnBsb3QoYW1icnVwLmxtKQ0KYGBgDQoNCiMjIyBQb3N0LWhvYyBjb21wYXJpc29ucw0KYGBge3J9DQphbWJydXAuZW1tIDwtIGVtbWVhbnMoYW1icnVwLmxtLCB+IGJlZ2luX2RhdGVfeWVhciphZ2VfZ3JvdXApDQpwYWlycyhhbWJydXAuZW1tLCBzaW1wbGUgPSAiYWdlX2dyb3VwIikNCnRlc3QocGFpcnMoYW1icnVwLmVtbSwgYnkgPSAiYmVnaW5fZGF0ZV95ZWFyIiksIGJ5ID0gTlVMTCwgYWRqdXN0ID0gIm12dCIpDQoNCiNleHBvcnQgdGFibGVzDQojICNpbnRlcnByZXQoZXRhX3NxdWFyZWQoYW1icnVwLmxtKSwgcnVsZXMgPSAiY29oZW4xOTkyIikgJT4lDQojICAgd3JpdGUuY3N2KGZpbGUgPSAiT3V0cHV0cy9UYWJsZXMvYW1icnVwX2V0YV9zcXVhcmVkLmNzdiIpDQoNCiNzbG9wZSBjb250cmFzdHMNCiMgT2J0YWluIHNsb3BlIGVzdGltYXRlcw0KYW1icnVwLnNsb3BlcyA8LSBlbXRyZW5kcyhhbWJydXAubG0sIH5hZ2VfZ3JvdXAsIHZhciA9ICJiZWdpbl9kYXRlX3llYXIiKQ0KIyBDb21wYXJlIGVzdGltYXRlZCBzbG9wZXMgdG8gMA0KYW1icnVwLnNsb3BlLmNvbnRyYXN0cyA8LSB0ZXN0KGFtYnJ1cC5zbG9wZXMpICU+JSANCiAgbXV0YXRlKFNwZWNpZXMgPSAiUm9jayBCYXNzIikgJT4lIA0KICByZW5hbWUoQWdlID0gYWdlX2dyb3VwKQ0KDQphbWJydXAuc2xvcGUuY29udHJhc3RzICU+JQ0KICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9hbWJydXBfZW1tZWFucy5jc3YiKQ0KYGBgDQoNCiMjIyBQbG90IHJhdyBkYXRhDQpgYGB7cn0NCihhbWJydXAubGVuZ3RoLnllYXIucGxvdCA8LSBnZ3Bsb3QoZGF0YSA9IGFtYnJ1cCAlPiUgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGUoQWdlID0gYXMuZmFjdG9yKGFnZV9ncm91cCkpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IGJlZ2luX2RhdGVfeWVhciwgeSA9IGxlbmd0aF9tZWFuX21tLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBBZ2UsIGZpbGwgPSBBZ2UsIGdyb3VwID0gQWdlKSkrDQogICAgI2dlb21fcG9pbnQoKSsNCiAgICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKSsNCiAgICBzdGF0X3BvbHlfZXEodXNlX2xhYmVsKCJlcSIpKSsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoKSsNCiAgICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgpKw0KICAgIGxhYnMoeSA9ICJMZW5ndGggKG1tKSIsIHggPSAiWWVhciIpKw0KICAgIHRoZW1lX2J3KCkNCikNCg0KYGBgDQojIyMgTWFyZ2luYWwgRWZmZWN0cw0KYGBge3J9DQpyZXN1bHQgPC0gcHJlZGljdF9yZXNwb25zZShhbWJydXAubG0sIGMoImJlZ2luX2RhdGVfeWVhciIsICJhZ2VfZ3JvdXAiKSkNCg0KIyBwbG90KHJlc3VsdCkNCiMgdGVzdF9wcmVkaWN0aW9ucyhyZXN1bHQpICU+JSANCiMgICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9hbWJydXBfcGFpcndpc2VfbGVuZ3RoX3RpbWVfc2xvcGVzLmNzdiIsIHJvdy5uYW1lcyA9IEYpDQoNCihhbWJydXAubWFyZ2luYWwucGxvdCA8LSBnZ3ByZWRpY3QoYW1icnVwLmxtLCB0ZXJtcyA9IGMoImJlZ2luX2RhdGVfeWVhciIsICJhZ2VfZ3JvdXAiKSkgJT4lICANCiAgICBwbG90KCkrDQogICAgI3N0YXRfcG9seV9lcSh1c2VfbGFiZWwoImVxIikpKw0KICAgIHN0YXRfcmVnbGluZV9lcXVhdGlvbigpKw0KICAgIHN0YXRfcG9seV9saW5lKCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gOTQwIC0gMC4zM3giLCB4ID0gMTk5MCwgeSA9IDI4NSkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gNzYwIC0gMC4yNXgiLCB4ID0gMTk5MCwgeSA9IDI3MCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gNDMwIC0gMC4wOXgiLCB4ID0gMTk5MCwgeSA9IDI1OCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMzkwIC0gMC4wOHgiLCB4ID0gMTk5MCwgeSA9IDI0NSkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gNTAwIC0gMC4xNHgiLCB4ID0gMTk5MCwgeSA9IDIzMCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMjEwIC0gMC4wMDR4IiwgeCA9IDE5OTAsIHkgPSAyMTUpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDE2ICsgMC4wOXgiLCB4ID0gMTk5MCwgeSA9IDE5OCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gNDMwIC0gMC4xM3giLCB4ID0gMTk5MCwgeSA9IDE3MCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gNTgwIC0gMC4yMngiLCB4ID0gMTk5MCwgeSA9IDE0NSkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gOTQwIC0gMC40MngiLCB4ID0gMTk5MCwgeSA9IDEyNSkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMS44RTMgLSAwLjg1eCIsIHggPSAxOTkwLCB5ID0gOTApKw0KICAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpKw0KICAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkrDQogICAgbGFicyh0aXRsZSA9IE5VTEwsDQogICAgICAgICB5ID0gIk1lYW4gTGVuZ3RoLWF0LUFnZSAobW0pIiwNCiAgICAgICAgIHggPSAiWWVhciIpKw0KICAgIGd1aWRlcyhmaWxsID0gZ3VpZGVfbGVnZW5kKHRpdGxlID0gIkFnZSIsIHJldmVyc2UgPSBUKSwgY29sb3IgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiQWdlIiwgcmV2ZXJzZSA9IFQpKSsNCiAgICB0aGVtZV9idygpDQopDQoNCg0KZ2dzYXZlKGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9hbWJydXBfbWFyZ2luYWxfZWZmZWN0c19wbG90LnRpZmYiLCANCiAgICAgICBhbWJydXAubWFyZ2luYWwucGxvdCwgDQogICAgICAgZHBpID0gMzAwLCB3aWR0aCA9IDIwMCwgaGVpZ2h0ID0gMTUwLCB1bml0cyA9ICJtbSIpDQpgYGANCg0KDQoNCg0KIyMgU21hbGxtb3V0aCBCYXNzDQoNCiMjIyBNb2RlbA0KYGBge3J9DQojZmlsdGVyIGRhdGEgZm9yIG9ubHkgQmxhY2sgQ3JhcHBpZSwgUG9tb294aXMgbmlncm9tYWN1bGF0dXMgDQptaWNkb2wgPC0gYWxsLmdyb3cubWVyZ2UgJT4lIGZpbHRlcihzcGVjaWVzID09ICJzbWFsbG1vdXRoX2Jhc3MiKSAlPiUgDQogIGZpbHRlcihhZ2VfZ3JvdXAgJWluJSBjKDA6MTApLCAjbWF0Y2ggYWdlIGdyb3VwcyBpbiBCUlRzDQogICAgICAgICAhaXMubmEoYWdlX2dyb3VwKSwgIWlzLm5hKGJlZ2luX2RhdGVfeWVhciksICFpcy5uYShsZW5ndGhfbWVhbl9tbSksDQogICAgICAgICAhaXMubmEobG9nX21heF9kZXB0aCksICFpcy5uYShsb2dhcmVhKSkNCg0KI2xpbmVhciBtb2RlbA0KbWljZG9sLmxtIDwtIGxtKGxlbmd0aF9tZWFuX21tIH4gYmVnaW5fZGF0ZV95ZWFyKmFnZV9ncm91cCArIGxvZ19tYXhfZGVwdGggKyBsb2dhcmVhICsgZG95LCBkYXRhID0gbWljZG9sKQ0Kc3VtbWFyeShtaWNkb2wubG0pDQoNCiNjYWxjdWxhdGUgYW5kIGludGVycHJldCBlZmZlY3Qgc2l6ZXMNCmV0YV9zcXVhcmVkKG1pY2RvbC5sbSkNCiNpbnRlcnByZXQoZXRhX3NxdWFyZWQobWljZG9sLmxtKSwgcnVsZXMgPSAiY29oZW4xOTkyIikNCg0KI2NhbGN1bGF0ZSBBSUMgc2NvcmUNCkFJQyhtaWNkb2wubG0pDQoNCiNleGFtaW5lIG1vZGVsIGZpdA0KdGVzdERpc3BlcnNpb24obWljZG9sLmxtKQ0KDQpzaW11bGF0aW9uLm91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IG1pY2RvbC5sbSkNCg0KcmVzaWR1YWxzKG1pY2RvbC5sbSkNCnJlc2lkdWFscyhtaWNkb2wubG0sIHF1YW50aWxlRnVuY3Rpb24gPSBxbm9ybSkNCg0KcGxvdChtaWNkb2wubG0pDQpgYGANCg0KIyMjIFBvc3QtaG9jIGNvbXBhcmlzb25zDQpgYGB7cn0NCm1pY2RvbC5lbW0gPC0gZW1tZWFucyhtaWNkb2wubG0sIH4gYmVnaW5fZGF0ZV95ZWFyKmFnZV9ncm91cCkNCnBhaXJzKG1pY2RvbC5lbW0sIHNpbXBsZSA9ICJhZ2VfZ3JvdXAiKQ0KdGVzdChwYWlycyhtaWNkb2wuZW1tLCBieSA9ICJiZWdpbl9kYXRlX3llYXIiKSwgYnkgPSBOVUxMLCBhZGp1c3QgPSAibXZ0IikNCg0KI2V4cG9ydCB0YWJsZXMNCiMgI2ludGVycHJldChldGFfc3F1YXJlZChtaWNkb2wubG0pLCBydWxlcyA9ICJjb2hlbjE5OTIiKSAlPiUNCiMgICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9taWNkb2xfZXRhX3NxdWFyZWQuY3N2IikNCg0KI3Nsb3BlIGNvbnRyYXN0cw0KIyBPYnRhaW4gc2xvcGUgZXN0aW1hdGVzDQptaWNkb2wuc2xvcGVzIDwtIGVtdHJlbmRzKG1pY2RvbC5sbSwgfmFnZV9ncm91cCwgdmFyID0gImJlZ2luX2RhdGVfeWVhciIpDQojIENvbXBhcmUgZXN0aW1hdGVkIHNsb3BlcyB0byAwDQptaWNkb2wuc2xvcGUuY29udHJhc3RzIDwtIHRlc3QobWljZG9sLnNsb3BlcykgJT4lIA0KICBtdXRhdGUoU3BlY2llcyA9ICJTbWFsbG1vdXRoIEJhc3MiKSAlPiUgDQogIHJlbmFtZShBZ2UgPSBhZ2VfZ3JvdXApDQoNCm1pY2RvbC5zbG9wZS5jb250cmFzdHMgJT4lDQogIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL21pY2RvbF9lbW1lYW5zLmNzdiIpDQpgYGANCg0KIyMjIFBsb3QgcmF3IGRhdGENCmBgYHtyfQ0KKG1pY2RvbC5sZW5ndGgueWVhci5wbG90IDwtIGdncGxvdChkYXRhID0gbWljZG9sICU+JSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZShBZ2UgPSBhcy5mYWN0b3IoYWdlX2dyb3VwKSksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gYmVnaW5fZGF0ZV95ZWFyLCB5ID0gbGVuZ3RoX21lYW5fbW0sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IEFnZSwgZmlsbCA9IEFnZSwgZ3JvdXAgPSBBZ2UpKSsNCiAgICAjZ2VvbV9wb2ludCgpKw0KICAgIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIpKw0KICAgIHN0YXRfcG9seV9lcSh1c2VfbGFiZWwoImVxIikpKw0KICAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpKw0KICAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkrDQogICAgbGFicyh5ID0gIkxlbmd0aCAobW0pIiwgeCA9ICJZZWFyIikrDQogICAgdGhlbWVfYncoKQ0KKQ0KDQpgYGANCiMjIyBNYXJnaW5hbCBFZmZlY3RzDQpgYGB7cn0NCnJlc3VsdCA8LSBwcmVkaWN0X3Jlc3BvbnNlKG1pY2RvbC5sbSwgYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKQ0KDQojIHBsb3QocmVzdWx0KQ0KIyB0ZXN0X3ByZWRpY3Rpb25zKHJlc3VsdCkgJT4lIA0KIyAgIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL21pY2RvbF9wYWlyd2lzZV9sZW5ndGhfdGltZV9zbG9wZXMuY3N2Iiwgcm93Lm5hbWVzID0gRikNCg0KKG1pY2RvbC5tYXJnaW5hbC5wbG90IDwtIGdncHJlZGljdChtaWNkb2wubG0sIHRlcm1zID0gYygiYmVnaW5fZGF0ZV95ZWFyIiwgImFnZV9ncm91cCIpKSAlPiUgIA0KICAgIHBsb3QoKSsNCiAgICAjc3RhdF9wb2x5X2VxKHVzZV9sYWJlbCgiZXEiKSkrDQogICAgc3RhdF9yZWdsaW5lX2VxdWF0aW9uKCkrDQogICAgc3RhdF9wb2x5X2xpbmUoKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA3NyArIDAuMDd4IiwgeCA9IDIwMDAsIHkgPSAyMjQpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDIxICsgMC4wOTN4IiwgeCA9IDIwMDAsIHkgPSAyMTIpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IC02NCArIDAuMTN4IiwgeCA9IDIwMDAsIHkgPSAxOTkpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDIzMCAtIDAuMDI4eCIsIHggPSAyMDAwLCB5ID0gMTgyKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA2MTAgLSAwLjIzeCIsIHggPSAyMDAwLCB5ID0gMTYwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA5MjAgLSAwLjM5eCIsIHggPSAyMDAwLCB5ID0gMTM3KSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAxMjAwIC0gMC41NXgiLCB4ID0gMjAwMCwgeSA9IDExMCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMTcwMCAtIDAuODN4IiwgeCA9IDIwMDAsIHkgPSA4MCkrDQogICAgc2NhbGVfY29sb3JfdmlyaWRpc19kKCkrDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSsNCiAgICBsYWJzKHRpdGxlID0gTlVMTCwNCiAgICAgICAgIHkgPSAiTWVhbiBMZW5ndGgtYXQtQWdlIChtbSkiLA0KICAgICAgICAgeCA9ICJZZWFyIikrDQogICAgZ3VpZGVzKGZpbGwgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiQWdlIiwgcmV2ZXJzZSA9IFQpLCBjb2xvciA9IGd1aWRlX2xlZ2VuZCh0aXRsZSA9ICJBZ2UiLCByZXZlcnNlID0gVCkpKw0KICAgIHRoZW1lX2J3KCkNCikNCg0KDQpnZ3NhdmUoZmlsZW5hbWUgPSAifi9HaXRIdWIvRUFHRVJfZ3Jvd3RoL091dHB1dHMvRmlndXJlcy9MaW5lYXIgTW9kZWxzL21pY2RvbF9tYXJnaW5hbF9lZmZlY3RzX3Bsb3QudGlmZiIsIA0KICAgICAgIG1pY2RvbC5tYXJnaW5hbC5wbG90LCANCiAgICAgICBkcGkgPSAzMDAsIHdpZHRoID0gMjAwLCBoZWlnaHQgPSAxNTAsIHVuaXRzID0gIm1tIikNCmBgYA0KDQoNCg0KDQojIyBXYWxsZXllDQoNCiMjIyBNb2RlbA0KYGBge3J9DQojZmlsdGVyIGRhdGEgZm9yIG9ubHkgQmxhY2sgQ3JhcHBpZSwgUG9tb294aXMgbmlncm9tYWN1bGF0dXMgDQpzYW52aXQgPC0gYWxsLmdyb3cubWVyZ2UgJT4lIGZpbHRlcihzcGVjaWVzID09ICJ3YWxsZXllIikgJT4lIA0KICBmaWx0ZXIoYWdlX2dyb3VwICVpbiUgYygwOjEyKSwgI21hdGNoIGFnZSBncm91cHMgaW4gQlJUcw0KICAgICAgICAgIWlzLm5hKGFnZV9ncm91cCksICFpcy5uYShiZWdpbl9kYXRlX3llYXIpLCAhaXMubmEobGVuZ3RoX21lYW5fbW0pLA0KICAgICAgICAgIWlzLm5hKGxvZ19tYXhfZGVwdGgpLCAhaXMubmEobG9nYXJlYSkpDQoNCiNsaW5lYXIgbW9kZWwNCnNhbnZpdC5sbSA8LSBsbShsZW5ndGhfbWVhbl9tbSB+IGJlZ2luX2RhdGVfeWVhciphZ2VfZ3JvdXAgKyBsb2dfbWF4X2RlcHRoICsgbG9nYXJlYSArIGRveSwgZGF0YSA9IHNhbnZpdCkNCnN1bW1hcnkoc2Fudml0LmxtKQ0KDQojY2FsY3VsYXRlIGFuZCBpbnRlcnByZXQgZWZmZWN0IHNpemVzDQpldGFfc3F1YXJlZChzYW52aXQubG0pDQojaW50ZXJwcmV0KGV0YV9zcXVhcmVkKHNhbnZpdC5sbSksIHJ1bGVzID0gImNvaGVuMTk5MiIpDQoNCiNjYWxjdWxhdGUgQUlDIHNjb3JlDQpBSUMoc2Fudml0LmxtKQ0KDQojZXhhbWluZSBtb2RlbCBmaXQNCnRlc3REaXNwZXJzaW9uKHNhbnZpdC5sbSkNCg0Kc2ltdWxhdGlvbi5vdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBzYW52aXQubG0pDQoNCnJlc2lkdWFscyhzYW52aXQubG0pDQpyZXNpZHVhbHMoc2Fudml0LmxtLCBxdWFudGlsZUZ1bmN0aW9uID0gcW5vcm0pDQoNCnBsb3Qoc2Fudml0LmxtKQ0KYGBgDQoNCiMjIyBQb3N0LWhvYyBjb21wYXJpc29ucw0KYGBge3J9DQpzYW52aXQuZW1tIDwtIGVtbWVhbnMoc2Fudml0LmxtLCB+IGJlZ2luX2RhdGVfeWVhciphZ2VfZ3JvdXApDQpwYWlycyhzYW52aXQuZW1tLCBzaW1wbGUgPSAiYWdlX2dyb3VwIikNCnRlc3QocGFpcnMoc2Fudml0LmVtbSwgYnkgPSAiYmVnaW5fZGF0ZV95ZWFyIiksIGJ5ID0gTlVMTCwgYWRqdXN0ID0gIm12dCIpDQoNCiNleHBvcnQgdGFibGVzDQojICNpbnRlcnByZXQoZXRhX3NxdWFyZWQoc2Fudml0LmxtKSwgcnVsZXMgPSAiY29oZW4xOTkyIikgJT4lDQojICAgd3JpdGUuY3N2KGZpbGUgPSAiT3V0cHV0cy9UYWJsZXMvc2Fudml0X2V0YV9zcXVhcmVkLmNzdiIpDQoNCiNzbG9wZSBjb250cmFzdHMNCiMgT2J0YWluIHNsb3BlIGVzdGltYXRlcw0Kc2Fudml0LnNsb3BlcyA8LSBlbXRyZW5kcyhzYW52aXQubG0sIH5hZ2VfZ3JvdXAsIHZhciA9ICJiZWdpbl9kYXRlX3llYXIiKQ0KIyBDb21wYXJlIGVzdGltYXRlZCBzbG9wZXMgdG8gMA0Kc2Fudml0LnNsb3BlLmNvbnRyYXN0cyA8LSB0ZXN0KHNhbnZpdC5zbG9wZXMpICU+JSANCiAgbXV0YXRlKFNwZWNpZXMgPSAiV2FsbGV5ZSIpICU+JSANCiAgcmVuYW1lKEFnZSA9IGFnZV9ncm91cCkNCg0Kc2Fudml0LnNsb3BlLmNvbnRyYXN0cyAlPiUNCiAgd3JpdGUuY3N2KGZpbGUgPSAiT3V0cHV0cy9UYWJsZXMvc2Fudml0X2VtbWVhbnMuY3N2IikNCmBgYA0KDQojIyMgUGxvdCByYXcgZGF0YQ0KYGBge3J9DQooc2Fudml0Lmxlbmd0aC55ZWFyLnBsb3QgPC0gZ2dwbG90KGRhdGEgPSBzYW52aXQgJT4lIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0YXRlKEFnZSA9IGFzLmZhY3RvcihhZ2VfZ3JvdXApKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzKHggPSBiZWdpbl9kYXRlX3llYXIsIHkgPSBsZW5ndGhfbWVhbl9tbSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gQWdlLCBmaWxsID0gQWdlLCBncm91cCA9IEFnZSkpKw0KICAgICNnZW9tX3BvaW50KCkrDQogICAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIikrDQogICAgc3RhdF9wb2x5X2VxKHVzZV9sYWJlbCgiZXEiKSkrDQogICAgc2NhbGVfY29sb3JfdmlyaWRpc19kKCkrDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSsNCiAgICBsYWJzKHkgPSAiTGVuZ3RoIChtbSkiLCB4ID0gIlllYXIiKSsNCiAgICB0aGVtZV9idygpDQopDQoNCmBgYA0KIyMjIE1hcmdpbmFsIEVmZmVjdHMNCmBgYHtyfQ0KcmVzdWx0IDwtIHByZWRpY3RfcmVzcG9uc2Uoc2Fudml0LmxtLCBjKCJiZWdpbl9kYXRlX3llYXIiLCAiYWdlX2dyb3VwIikpDQoNCiMgcGxvdChyZXN1bHQpDQojIHRlc3RfcHJlZGljdGlvbnMocmVzdWx0KSAlPiUgDQojICAgd3JpdGUuY3N2KGZpbGUgPSAiT3V0cHV0cy9UYWJsZXMvc2Fudml0X3BhaXJ3aXNlX2xlbmd0aF90aW1lX3Nsb3Blcy5jc3YiLCByb3cubmFtZXMgPSBGKQ0KDQooc2Fudml0Lm1hcmdpbmFsLnBsb3QgPC0gZ2dwcmVkaWN0KHNhbnZpdC5sbSwgdGVybXMgPSBjKCJiZWdpbl9kYXRlX3llYXIiLCAiYWdlX2dyb3VwIikpICU+JSAgDQogICAgcGxvdCgpKw0KICAgICNzdGF0X3BvbHlfZXEodXNlX2xhYmVsKCJlcSIpKSsNCiAgICBzdGF0X3JlZ2xpbmVfZXF1YXRpb24oKSsNCiAgICBzdGF0X3BvbHlfbGluZSgpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDc3ICsgMC4wN3giLCB4ID0gMjAwMCwgeSA9IDIyNCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMjEgKyAwLjA5M3giLCB4ID0gMjAwMCwgeSA9IDIxMikrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gLTY0ICsgMC4xM3giLCB4ID0gMjAwMCwgeSA9IDE5OSkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMjMwIC0gMC4wMjh4IiwgeCA9IDIwMDAsIHkgPSAxODIpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDYxMCAtIDAuMjN4IiwgeCA9IDIwMDAsIHkgPSAxNjApKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDkyMCAtIDAuMzl4IiwgeCA9IDIwMDAsIHkgPSAxMzcpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDEyMDAgLSAwLjU1eCIsIHggPSAyMDAwLCB5ID0gMTEwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAxNzAwIC0gMC44M3giLCB4ID0gMjAwMCwgeSA9IDgwKSsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoKSsNCiAgICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgpKw0KICAgIGxhYnModGl0bGUgPSBOVUxMLA0KICAgICAgICAgeSA9ICJNZWFuIExlbmd0aC1hdC1BZ2UgKG1tKSIsDQogICAgICAgICB4ID0gIlllYXIiKSsNCiAgICBndWlkZXMoZmlsbCA9IGd1aWRlX2xlZ2VuZCh0aXRsZSA9ICJBZ2UiLCByZXZlcnNlID0gVCksIGNvbG9yID0gZ3VpZGVfbGVnZW5kKHRpdGxlID0gIkFnZSIsIHJldmVyc2UgPSBUKSkrDQogICAgdGhlbWVfYncoKQ0KKQ0KDQoNCmdnc2F2ZShmaWxlbmFtZSA9ICJ+L0dpdEh1Yi9FQUdFUl9ncm93dGgvT3V0cHV0cy9GaWd1cmVzL0xpbmVhciBNb2RlbHMvc2Fudml0X21hcmdpbmFsX2VmZmVjdHNfcGxvdC50aWZmIiwgDQogICAgICAgc2Fudml0Lm1hcmdpbmFsLnBsb3QsIA0KICAgICAgIGRwaSA9IDMwMCwgd2lkdGggPSAyMDAsIGhlaWdodCA9IDE1MCwgdW5pdHMgPSAibW0iKQ0KYGBgDQoNCg0KDQoNCiMjIFllbGxvdyBQZXJjaA0KDQojIyMgTW9kZWwNCmBgYHtyfQ0KI2ZpbHRlciBkYXRhIGZvciBvbmx5IEJsYWNrIENyYXBwaWUsIFBvbW9veGlzIG5pZ3JvbWFjdWxhdHVzIA0KcGVyZmxhIDwtIGFsbC5ncm93Lm1lcmdlICU+JSBmaWx0ZXIoc3BlY2llcyA9PSAieWVsbG93X3BlcmNoIikgJT4lIA0KICBmaWx0ZXIoYWdlX2dyb3VwICVpbiUgYygwOjExKSwgI21hdGNoIGFnZSBncm91cHMgaW4gQlJUcw0KICAgICAgICAgIWlzLm5hKGFnZV9ncm91cCksICFpcy5uYShiZWdpbl9kYXRlX3llYXIpLCAhaXMubmEobGVuZ3RoX21lYW5fbW0pLA0KICAgICAgICAgIWlzLm5hKGxvZ19tYXhfZGVwdGgpLCAhaXMubmEobG9nYXJlYSkpDQoNCiNsaW5lYXIgbW9kZWwNCnBlcmZsYS5sbSA8LSBsbShsZW5ndGhfbWVhbl9tbSB+IGJlZ2luX2RhdGVfeWVhciphZ2VfZ3JvdXAgKyBsb2dfbWF4X2RlcHRoICsgbG9nYXJlYSArIGRveSwgZGF0YSA9IHBlcmZsYSkNCnN1bW1hcnkocGVyZmxhLmxtKQ0KDQojY2FsY3VsYXRlIGFuZCBpbnRlcnByZXQgZWZmZWN0IHNpemVzDQpldGFfc3F1YXJlZChwZXJmbGEubG0pDQojaW50ZXJwcmV0KGV0YV9zcXVhcmVkKHBlcmZsYS5sbSksIHJ1bGVzID0gImNvaGVuMTk5MiIpDQoNCiNjYWxjdWxhdGUgQUlDIHNjb3JlDQpBSUMocGVyZmxhLmxtKQ0KDQojZXhhbWluZSBtb2RlbCBmaXQNCnRlc3REaXNwZXJzaW9uKHBlcmZsYS5sbSkNCg0Kc2ltdWxhdGlvbi5vdXRwdXQgPC0gc2ltdWxhdGVSZXNpZHVhbHMoZml0dGVkTW9kZWwgPSBwZXJmbGEubG0pDQoNCnJlc2lkdWFscyhwZXJmbGEubG0pDQpyZXNpZHVhbHMocGVyZmxhLmxtLCBxdWFudGlsZUZ1bmN0aW9uID0gcW5vcm0pDQoNCnBsb3QocGVyZmxhLmxtKQ0KYGBgDQoNCiMjIyBQb3N0LWhvYyBjb21wYXJpc29ucw0KYGBge3J9DQpwZXJmbGEuZW1tIDwtIGVtbWVhbnMocGVyZmxhLmxtLCB+IGJlZ2luX2RhdGVfeWVhciphZ2VfZ3JvdXApDQpwYWlycyhwZXJmbGEuZW1tLCBzaW1wbGUgPSAiYWdlX2dyb3VwIikNCnRlc3QocGFpcnMocGVyZmxhLmVtbSwgYnkgPSAiYmVnaW5fZGF0ZV95ZWFyIiksIGJ5ID0gTlVMTCwgYWRqdXN0ID0gIm12dCIpDQoNCiNleHBvcnQgdGFibGVzDQojICNpbnRlcnByZXQoZXRhX3NxdWFyZWQocGVyZmxhLmxtKSwgcnVsZXMgPSAiY29oZW4xOTkyIikgJT4lDQojICAgd3JpdGUuY3N2KGZpbGUgPSAiT3V0cHV0cy9UYWJsZXMvcGVyZmxhX2V0YV9zcXVhcmVkLmNzdiIpDQoNCiNzbG9wZSBjb250cmFzdHMNCiMgT2J0YWluIHNsb3BlIGVzdGltYXRlcw0KcGVyZmxhLnNsb3BlcyA8LSBlbXRyZW5kcyhwZXJmbGEubG0sIH5hZ2VfZ3JvdXAsIHZhciA9ICJiZWdpbl9kYXRlX3llYXIiKQ0KIyBDb21wYXJlIGVzdGltYXRlZCBzbG9wZXMgdG8gMA0KcGVyZmxhLnNsb3BlLmNvbnRyYXN0cyA8LSB0ZXN0KHBlcmZsYS5zbG9wZXMpICU+JSANCiAgbXV0YXRlKFNwZWNpZXMgPSAiWWVsbG93IFBlcmNoIikgJT4lIA0KICByZW5hbWUoQWdlID0gYWdlX2dyb3VwKQ0KDQpwZXJmbGEuc2xvcGUuY29udHJhc3RzICU+JQ0KICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9wZXJmbGFfZW1tZWFucy5jc3YiKQ0KYGBgDQoNCiMjIyBQbG90IHJhdyBkYXRhDQpgYGB7cn0NCihwZXJmbGEubGVuZ3RoLnllYXIucGxvdCA8LSBnZ3Bsb3QoZGF0YSA9IHBlcmZsYSAlPiUgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGUoQWdlID0gYXMuZmFjdG9yKGFnZV9ncm91cCkpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IGJlZ2luX2RhdGVfeWVhciwgeSA9IGxlbmd0aF9tZWFuX21tLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBBZ2UsIGZpbGwgPSBBZ2UsIGdyb3VwID0gQWdlKSkrDQogICAgI2dlb21fcG9pbnQoKSsNCiAgICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKSsNCiAgICBzdGF0X3BvbHlfZXEodXNlX2xhYmVsKCJlcSIpKSsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoKSsNCiAgICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgpKw0KICAgIGxhYnMoeSA9ICJMZW5ndGggKG1tKSIsIHggPSAiWWVhciIpKw0KICAgIHRoZW1lX2J3KCkNCikNCg0KYGBgDQojIyMgTWFyZ2luYWwgRWZmZWN0cw0KYGBge3J9DQpyZXN1bHQgPC0gcHJlZGljdF9yZXNwb25zZShwZXJmbGEubG0sIGMoImJlZ2luX2RhdGVfeWVhciIsICJhZ2VfZ3JvdXAiKSkNCg0KIyBwbG90KHJlc3VsdCkNCiMgdGVzdF9wcmVkaWN0aW9ucyhyZXN1bHQpICU+JSANCiMgICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9wZXJmbGFfcGFpcndpc2VfbGVuZ3RoX3RpbWVfc2xvcGVzLmNzdiIsIHJvdy5uYW1lcyA9IEYpDQoNCihwZXJmbGEubWFyZ2luYWwucGxvdCA8LSBnZ3ByZWRpY3QocGVyZmxhLmxtLCB0ZXJtcyA9IGMoImJlZ2luX2RhdGVfeWVhciIsICJhZ2VfZ3JvdXAiKSkgJT4lICANCiAgICBwbG90KCkrDQogICAgI3N0YXRfcG9seV9lcSh1c2VfbGFiZWwoImVxIikpKw0KICAgIHN0YXRfcmVnbGluZV9lcXVhdGlvbigpKw0KICAgIHN0YXRfcG9seV9saW5lKCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gNzcgKyAwLjA3eCIsIHggPSAyMDAwLCB5ID0gMjI0KSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAyMSArIDAuMDkzeCIsIHggPSAyMDAwLCB5ID0gMjEyKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAtNjQgKyAwLjEzeCIsIHggPSAyMDAwLCB5ID0gMTk5KSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAyMzAgLSAwLjAyOHgiLCB4ID0gMjAwMCwgeSA9IDE4MikrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gNjEwIC0gMC4yM3giLCB4ID0gMjAwMCwgeSA9IDE2MCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gOTIwIC0gMC4zOXgiLCB4ID0gMjAwMCwgeSA9IDEzNykrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMTIwMCAtIDAuNTV4IiwgeCA9IDIwMDAsIHkgPSAxMTApKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDE3MDAgLSAwLjgzeCIsIHggPSAyMDAwLCB5ID0gODApKw0KICAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpKw0KICAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkrDQogICAgbGFicyh0aXRsZSA9IE5VTEwsDQogICAgICAgICB5ID0gIk1lYW4gTGVuZ3RoLWF0LUFnZSAobW0pIiwNCiAgICAgICAgIHggPSAiWWVhciIpKw0KICAgIGd1aWRlcyhmaWxsID0gZ3VpZGVfbGVnZW5kKHRpdGxlID0gIkFnZSIsIHJldmVyc2UgPSBUKSwgY29sb3IgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiQWdlIiwgcmV2ZXJzZSA9IFQpKSsNCiAgICB0aGVtZV9idygpDQopDQoNCg0KZ2dzYXZlKGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9wZXJmbGFfbWFyZ2luYWxfZWZmZWN0c19wbG90LnRpZmYiLCANCiAgICAgICBwZXJmbGEubWFyZ2luYWwucGxvdCwgDQogICAgICAgZHBpID0gMzAwLCB3aWR0aCA9IDIwMCwgaGVpZ2h0ID0gMTUwLCB1bml0cyA9ICJtbSIpDQpgYGANCiMgQWxsIHNwZWNpZXMgbWFyZ2luYWwgZWZmZWN0cyBwbG90DQpgYGB7cn0NCmFsbC5zcHAubWFyZ2luYWwuZWZmZWN0cyA8LSBnZ2FycmFuZ2UoY29yYXJ0Lm1hcmdpbmFsLnBsb3QsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uY215ay5tYXJnaW5hbC5wbG90LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWx0cnUubWFyZ2luYWwucGxvdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyZmxhLm1hcmdpbmFsLnBsb3QsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzb2x1Yy5tYXJnaW5hbC5wbG90LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW52aXQubWFyZ2luYWwucGxvdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y29tLm1hcmdpbmFsLnBsb3QsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbW5pZy5tYXJnaW5hbC5wbG90LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbWJydXAubWFyZ2luYWwucGxvdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWljZG9sLm1hcmdpbmFsLnBsb3QsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlcGdpYi5tYXJnaW5hbC5wbG90LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXBtYWMubWFyZ2luYWwucGxvdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uLmxlZ2VuZCA9IFQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2VuZCA9ICJyaWdodCIpDQoNCmFsbC5zcHAubWFyZ2luYWwuZWZmZWN0cw0KDQpzYWxtb25kLm1hcmdpbmFsLmVmZmVjdHMgPC0gZ2dhcnJhbmdlKGNvcmFydC5tYXJnaW5hbC5wbG90LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmNteWsubWFyZ2luYWwucGxvdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FsdHJ1Lm1hcmdpbmFsLnBsb3QsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5jb2wgPSAxLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb24ubGVnZW5kID0gVCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnZW5kID0gInJpZ2h0IikNCmBgYA0KDQoNCiMgU3ludGhlc2lzIFBsb3RzIEFjcm9zcyBTcGVjaWVzDQoNCkNyZWF0ZSB0aWJibGUgb2Ygc2xvcGVzIG9mIGFsbCBzcGVjaWVzIHNpemUgY2xhc3Nlcw0KYGBge3J9DQojZXh0cmFjdGluZyBvdXRwdXQgZnJvbSBtYXJnaW5hbCBlZmZlY3QgcGxvdHMgdy8gZXF1YXRpb25zDQphbGwuc2xvcGVzIDwtIHRpYmJsZSgNCiAgU3BlY2llcyA9IGMoDQogICAgcmVwKCJSb2NrIEJhc3MiLCAxMSksDQogICAgcmVwKCJDaXNjbyIsIDYpLA0KICAgIHJlcCgiTm9ydGhlcm4gUGlrZSIsIDExKSwNCiAgICByZXAoIlB1bXBraW5zZWVkIFN1bmZpc2giLCAxMCksDQogICAgcmVwKCJCbHVlZ2lsbCIsIDEyKSwNCiAgICByZXAoIlNtYWxsbW91dGggQmFzcyIsIDExKSwNCiAgICByZXAoIkxhcmdlbW91dGggQmFzcyIsIDEzKSwNCiAgICByZXAoIlJhaW5ib3cgVHJvdXQiLCA0KSwNCiAgICByZXAoIlllbGxvdyBQZXJjaCIsIDEyKSwNCiAgICByZXAoIkJsYWNrIENyYXBwaWUiLCAxMiksDQogICAgcmVwKCJCcm93biBUcm91dCIsIDUpLA0KICAgIHJlcCgiV2FsbGV5ZSIsIDEzKSwNCiAgICByZXAoIldoaXRlIFN1Y2tlciIsIDUpDQogICksDQogIEFnZSA9IGMoDQogICAgYygxOjExKSwgI1JvY2sgQmFzcw0KICAgIGMoMjo3KSwgI0Npc2NvDQogICAgYygwOjEwKSwgI05vcnRoZXJuIFBpa2UNCiAgICBjKDE6MTApLCAjUHVtcGtpbnNlZWQgU3VuZmlzaA0KICAgIGMoMDoxMSksICNCbHVlZ2lsbA0KICAgIGMoMDoxMCksICNTbWFsbG1vdXRoIEJhc3MNCiAgICBjKDA6MTIpLCAjTGFyZ2Vtb3V0aCBCYXNzDQogICAgYygxOjQpLCAjUmFpbmJvdyBUcm91dA0KICAgIGMoMDoxMSksICNZZWxsb3cgUGVyY2gNCiAgICBjKDA6MTEpLCAjQmxhY2sgQ3JhcHBpZQ0KICAgIGMoMTo1KSwgI0Jyb3duIFRyb3V0DQogICAgYygwOjEyKSwgI1dhbGxleWUNCiAgICBjKDE6NSkgI1doaXRlIFN1Y2tlcg0KICApLA0KICBgVGhlcm1hbCBHdWlsZGAgPSBjKA0KICAgIHJlcCgiQ29vbCIsIDExKSwgI1JvY2sgQmFzcw0KICAgIHJlcCgiQ29sZCIsIDYpLCAjQ2lzY28NCiAgICByZXAoIkNvb2wiLCAxMSksICNOb3J0aGVybiBQaWtlDQogICAgcmVwKCJXYXJtIiwgMTApLCAjUHVtcGtpbnNlZWQgU3VuZmlzaA0KICAgIHJlcCgiV2FybSIsIDEyKSwgI0JsdWVnaWxsDQogICAgcmVwKCJXYXJtIiwgMTEpLCAjU21hbGxtb3V0aCBCYXNzDQogICAgcmVwKCJXYXJtIiwgMTMpLCAjTGFyZ2Vtb3V0aCBCYXNzDQogICAgcmVwKCJDb2xkIiwgNCksICNSYWluYm93IFRyb3V0DQogICAgcmVwKCJDb29sIiwgMTIpLCAjWWVsbG93IFBlcmNoDQogICAgcmVwKCJDb29sIiwgMTIpLCAjQmxhY2sgQ3JhcHBpZQ0KICAgIHJlcCgiQ29sZCIsIDUpLCAjQnJvd24gVHJvdXQNCiAgICByZXAoIkNvb2wiLCAxMyksICNXYWxsZXllDQogICAgcmVwKCJDb29sIiwgNSkgI1doaXRlIFN1Y2tlcg0KICAgICksDQogIGBUcm9waGljIEd1aWxkYCA9IGMoDQogICAgcmVwKCJJbnYvQ2FybiIsIDExKSwgI1JvY2sgQmFzcw0KICAgIHJlcCgiSW52L1BsYW5rIiwgNiksICNDaXNjbw0KICAgIHJlcCgiQ2FybiIsIDExKSwgI05vcnRoZXJuIFBpa2UNCiAgICByZXAoIkludi9DYXJuIiwgMTApLCAjUHVtcGtpbnNlZWQgU3VuZmlzaA0KICAgIHJlcCgiSW52IiwgMTIpLCAjQmx1ZWdpbGwNCiAgICByZXAoIkludi9DYXJuIiwgMTEpLCAjU21hbGxtb3V0aCBCYXNzDQogICAgcmVwKCJJbnYvQ2FybiIsIDEzKSwgI0xhcmdlbW91dGggQmFzcw0KICAgIHJlcCgiSW52L0Nhcm4iLCA0KSwgI1JhaW5ib3cgVHJvdXQNCiAgICByZXAoIkludi9DYXJuIiwgMTIpLCAjWWVsbG93IFBlcmNoDQogICAgcmVwKCJJbnYvQ2FybiIsIDEyKSwgI0JsYWNrIENyYXBwaWUNCiAgICByZXAoIkludi9DYXJuIiwgNSksICNCcm93biBUcm91dA0KICAgIHJlcCgiSW52L0Nhcm4iLCAxMyksICNXYWxsZXllDQogICAgcmVwKCJJbnYvRGV0IiwgNSkgI1doaXRlIFN1Y2tlcg0KICApDQopICAlPiUgDQogIG11dGF0ZSgNCiAgICAgICAgIGBMaWZlIFN0YWdlYCA9IGNhc2Vfd2hlbigNCiAgICAgICAgICAgU3BlY2llcyA9PSAiQmxhY2sgQ3JhcHBpZSIgJiBBZ2UgPD0gMyB+ICJKdXZlbmlsZSIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIkJsYWNrIENyYXBwaWUiICYgQWdlID4gMyB+ICJBZHVsdCIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIldoaXRlIFN1Y2tlciIgJiBBZ2UgPD0gNCB+ICJKdXZlbmlsZSIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIldoaXRlIFN1Y2tlciIgJiBBZ2UgPiA0IH4gIkFkdWx0IiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiQ2lzY28iICYgQWdlIDw9IDYgfiAiSnV2ZW5pbGUiLA0KICAgICAgICAgICBTcGVjaWVzID09ICJDaXNjbyIgJiBBZ2UgPiA2IH4gIkFkdWx0IiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiTm9ydGhlcm4gUGlrZSIgJiBBZ2UgPD0gNCB+ICJKdXZlbmlsZSIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIk5vcnRoZXJuIFBpa2UiICYgQWdlID4gNCB+ICJBZHVsdCIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIkJsdWVnaWxsIiAmIEFnZSA8PSA0IH4gIkp1dmVuaWxlIiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiQmx1ZWdpbGwiICYgQWdlID4gNCB+ICJBZHVsdCIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIlNtYWxsbW91dGggQmFzcyIgJiBBZ2UgPD0gNSB+ICJKdXZlbmlsZSIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIlNtYWxsbW91dGggQmFzcyIgJiBBZ2UgPiA1IH4gIkFkdWx0IiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiTGFyZ2Vtb3V0aCBCYXNzIiAmIEFnZSA8PSA1IH4gIkp1dmVuaWxlIiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiTGFyZ2Vtb3V0aCBCYXNzIiAmIEFnZSA+IDUgfiAiQWR1bHQiLA0KICAgICAgICAgICBTcGVjaWVzID09ICJSYWluYm93IFRyb3V0IiAmIEFnZSA8PSA1IH4gIkp1dmVuaWxlIiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiUmFpbmJvdyBUcm91dCIgJiBBZ2UgPiA1IH4gIkFkdWx0IiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiQmxhY2sgQ3JhcHBpZSIgJiBBZ2UgPD0gMyB+ICJKdXZlbmlsZSIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIkJsYWNrIENyYXBwaWUiICYgQWdlID4gMyB+ICJBZHVsdCIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIlllbGxvdyBQZXJjaCIgJiBBZ2UgPD0gNCB+ICJKdXZlbmlsZSIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIlllbGxvdyBQZXJjaCIgJiBBZ2UgPiA0IH4gIkFkdWx0IiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiUHVtcGtpbnNlZWQgU3VuZmlzaCIgJiBBZ2UgPD0gMyB+ICJKdXZlbmlsZSIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIlB1bXBraW5zZWVkIFN1bmZpc2giICYgQWdlID4gMyB+ICJBZHVsdCIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIlJvY2sgQmFzcyIgJiBBZ2UgPD0gNSB+ICJKdXZlbmlsZSIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIlJvY2sgQmFzcyIgJiBBZ2UgPiA1IH4gIkFkdWx0IiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiQnJvd24gVHJvdXQiICYgQWdlIDw9IDUgfiAiSnV2ZW5pbGUiLA0KICAgICAgICAgICBTcGVjaWVzID09ICJCcm93biBUcm91dCIgJiBBZ2UgPiA1IH4gIkFkdWx0IiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiV2FsbGV5ZSIgJiBBZ2UgPD0gNSB+ICJKdXZlbmlsZSIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIldhbGxleWUiICYgQWdlID4gNSB+ICJBZHVsdCINCiAgICAgICAgICksIEFnZSA9IGFzLmZhY3RvcihBZ2UpKSAlPiUgDQogIGxlZnRfam9pbihtZWFuLmxlbmd0aC5hZ2UuY2xhc3MgJT4lIA0KICAgICAgICAgICAgICByZW5hbWUobWVhbl9sZW5ndGggPSBtZWFuKSwgDQogICAgICAgICAgICBieSA9IGMoIlNwZWNpZXMiLCAiQWdlIikpICU+JSANCiAgbGVmdF9qb2luKA0KICAgIGJpbmRfcm93cygNCiAgICAgIHBvbW5pZy5zbG9wZS5jb250cmFzdHMsDQogICAgICBsZXBtYWMuc2xvcGUuY29udHJhc3RzLA0KICAgICAgc2FsdHJ1LnNsb3BlLmNvbnRyYXN0cywNCiAgICAgIGNvcmFydC5zbG9wZS5jb250cmFzdHMsDQogICAgICBjYXRjb20uc2xvcGUuY29udHJhc3RzLA0KICAgICAgbWljc2FsLnNsb3BlLmNvbnRyYXN0cywNCiAgICAgIGVzb2x1Yy5zbG9wZS5jb250cmFzdHMsDQogICAgICBsZXBnaWIuc2xvcGUuY29udHJhc3RzLA0KICAgICAgb25jbXlrLnNsb3BlLmNvbnRyYXN0cywNCiAgICAgIGFtYnJ1cC5zbG9wZS5jb250cmFzdHMsDQogICAgICBtaWNkb2wuc2xvcGUuY29udHJhc3RzLA0KICAgICAgc2Fudml0LnNsb3BlLmNvbnRyYXN0cywNCiAgICAgIHBlcmZsYS5zbG9wZS5jb250cmFzdHMNCiAgICApICU+JSANCiAgICAgIHJlbmFtZShTbG9wZSA9IGJlZ2luX2RhdGVfeWVhci50cmVuZCksDQogICAgYnkgPSBjKCJTcGVjaWVzIiwgIkFnZSIpDQogICkgJT4lIA0KICBtdXRhdGUoYFBlcmNlbnQgQ2hhbmdlYCA9IChTbG9wZS9tZWFuX2xlbmd0aCkqMTAwLA0KICAgICAgICAgYHAtdmFsdWVgID0gaWZfZWxzZShwLnZhbHVlIDw9IDAuMDUsICJcdTIyNjQgMC4wNSIsICI+IDAuMDUiKSwNCiAgICAgICAgIHNwcF9jb2RlID0gY2FzZV93aGVuKA0KICAgICAgICAgICBTcGVjaWVzID09ICJCbGFjayBDcmFwcGllIiB+ICJCQ1IiLA0KICAgICAgICAgICBTcGVjaWVzID09ICJCbHVlZ2lsbCIgfiAiQkxHIiwgDQogICAgICAgICAgIFNwZWNpZXMgPT0gIkJyb3duIFRyb3V0IiB+ICJCTlQiLA0KICAgICAgICAgICBTcGVjaWVzID09ICJDaXNjbyIgfiAiQ0lTIiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiTGFyZ2Vtb3V0aCBCYXNzIiB+ICJMTUIiLA0KICAgICAgICAgICBTcGVjaWVzID09ICJOb3J0aGVybiBQaWtlIiB+ICJOT1AiLA0KICAgICAgICAgICBTcGVjaWVzID09ICJQdW1wa2luc2VlZCBTdW5maXNoIiB+ICJQU0YiLA0KICAgICAgICAgICBTcGVjaWVzID09ICJSYWluYm93IFRyb3V0IiB+ICJSQlQiLA0KICAgICAgICAgICBTcGVjaWVzID09ICJSb2NrIEJhc3MiIH4gIlJLQiIsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIlNtYWxsbW91dGggQmFzcyIgfiAiU01CIiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiV2FsbGV5ZSIgfiAiV0FFIiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiV2hpdGUgU3Vja2VyIiB+ICJDV1MiLA0KICAgICAgICAgICBTcGVjaWVzID09ICJZZWxsb3cgUGVyY2giIH4gIllFUCINCiAgICAgICAgICksDQogICAgICAgICBGVFAgPSBjYXNlX3doZW4oDQogICAgICAgICAgIFNwZWNpZXMgPT0gIkJsYWNrIENyYXBwaWUiIH4gMjMuNCwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiQmx1ZWdpbGwiIH4gMzAuMiwgDQogICAgICAgICAgIFNwZWNpZXMgPT0gIkJyb3duIFRyb3V0IiB+IDE1LjcsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIkNpc2NvIiB+IDEyLjQsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIkxhcmdlbW91dGggQmFzcyIgfiAyOC42LA0KICAgICAgICAgICBTcGVjaWVzID09ICJOb3J0aGVybiBQaWtlIiB+IDIwLjcsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIlB1bXBraW5zZWVkIFN1bmZpc2giIH4gMjcuNywNCiAgICAgICAgICAgU3BlY2llcyA9PSAiUmFpbmJvdyBUcm91dCIgfiAxNS41LA0KICAgICAgICAgICBTcGVjaWVzID09ICJSb2NrIEJhc3MiIH4gMjQuOSwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiU21hbGxtb3V0aCBCYXNzIiB+IDI1LjAsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIldhbGxleWUiIH4gMjIuNSwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiV2hpdGUgU3Vja2VyIiB+IDIzLjQsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIlllbGxvdyBQZXJjaCIgfiAxNy42DQogICAgICAgICApLA0KICAgICAgICAgQ1RtYXggPSBjYXNlX3doZW4oDQogICAgICAgICAgIFNwZWNpZXMgPT0gIkJsYWNrIENyYXBwaWUiIH4gMzQuOSwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiQmx1ZWdpbGwiIH4gNDAuMiwgDQogICAgICAgICAgIFNwZWNpZXMgPT0gIkJyb3duIFRyb3V0IiB+IDI4LjMsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIkNpc2NvIiB+IDI2LjksDQogICAgICAgICAgIFNwZWNpZXMgPT0gIkxhcmdlbW91dGggQmFzcyIgfiAzOC40LA0KICAgICAgICAgICBTcGVjaWVzID09ICJOb3J0aGVybiBQaWtlIiB+IDMyLjYsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIlB1bXBraW5zZWVkIFN1bmZpc2giIH4gMzcuNiwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiUmFpbmJvdyBUcm91dCIgfiAyMi4xLA0KICAgICAgICAgICBTcGVjaWVzID09ICJSb2NrIEJhc3MiIH4gMzYuMCwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiU21hbGxtb3V0aCBCYXNzIiB+IDM2LjMsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIldhbGxleWUiIH4gMjMuNCwNCiAgICAgICAgICAgU3BlY2llcyA9PSAiV2hpdGUgU3Vja2VyIiB+IDMxLjYsDQogICAgICAgICAgIFNwZWNpZXMgPT0gIlllbGxvdyBQZXJjaCIgfiAzNS4wDQogICAgICAgICApLA0KICAgICAgICAgU3BlY2llcyA9IGZjdF9yZW9yZGVyKFNwZWNpZXMsIEZUUCksDQogICAgICAgICBzY2FsZWRfc2xvcGUgPSBzY2FsZShTbG9wZSksDQogICAgICAgICBsb2dfc2xvcGUgPSBsb2coU2xvcGUrYWJzKG1pbihTbG9wZSkpKzEpDQogICAgICAgICApDQoNCiN3cml0ZSBvdXQgcmVkdWNlZCB2ZXJzaW9uIG9mIHRoZSB0YWJsZQ0Kd3JpdGUuY3N2KGFsbC5zbG9wZXMgJT4lIA0KICAgICAgICAgICAgc2VsZWN0KC1jKGBUcm9waGljIEd1aWxkYCwgc3BlY2llcywgYHAtdmFsdWVgLCBzcHBfY29kZSwgc2NhbGVkX3Nsb3BlLCBsb2dfc2xvcGUpKSwNCiAgICAgICAgICAgIGZpbGUgPSAiT3V0cHV0cy9UYWJsZXMvYWxsX3Nsb3Blcy5jc3YiLA0KICAgICAgICAgIHJvdy5uYW1lcyA9IEYpDQpgYGANCg0KU29tZSBzdW1tYXJ5IHN0YXRpc3RpY3MNCmBgYHtyfQ0KI21lYW4gc2xvcGUgcGVyIHRoZXJtYWwgZ3VpbGQNCm1lYW4ubW0ueXIudGhlcm1hbC5ndWlsZCA8LSBhbGwuc2xvcGVzICU+JSANCiAgZmlsdGVyKGBwLXZhbHVlYCA9PSAi4omkIDAuMDUiKSAlPiUgDQogIGdyb3VwX2J5KGBUaGVybWFsIEd1aWxkYCkgJT4lIA0KICBzdW1tYXJpc2UobWVhbl9TbG9wZSA9IG1lYW4oU2xvcGUpLCBtZWFuX1BlcmNlbnQgPSBtZWFuKGBQZXJjZW50IENoYW5nZWApKQ0KDQojcGVyIHNwZWNpZXMNCm1lYW4ubW0ueXIuc3BlY2llcyA8LSBhbGwuc2xvcGVzICU+JSANCiAgZmlsdGVyKGBwLXZhbHVlYCA9PSAi4omkIDAuMDUiKSAlPiUgDQogIGdyb3VwX2J5KFNwZWNpZXMpICU+JSANCiAgc3VtbWFyaXNlKG1lYW5fU2xvcGUgPSBtZWFuKFNsb3BlKSwgbWVhbl9QZXJjZW50ID0gbWVhbihgUGVyY2VudCBDaGFuZ2VgKSkNCg0KbWVhbi5tbS55ci5zcGVjaWVzLmxpZmVzdGFnZSA8LSBhbGwuc2xvcGVzICU+JSANCiAgZmlsdGVyKGBwLXZhbHVlYCA9PSAi4omkIDAuMDUiKSAlPiUgDQogIGdyb3VwX2J5KFNwZWNpZXMsIGBMaWZlIFN0YWdlYCkgJT4lIA0KICBzdW1tYXJpc2UobWVhbl9TbG9wZSA9IG1lYW4oU2xvcGUpLCBtZWFuX1BlcmNlbnQgPSBtZWFuKGBQZXJjZW50IENoYW5nZWApKQ0KDQptZWFuLm1tLnllYXIubGlmZS5zdGFnZSA8LSBhbGwuc2xvcGVzICU+JSANCiAgZmlsdGVyKGBwLXZhbHVlYCA9PSAi4omkIDAuMDUiKSAlPiUgDQogIGdyb3VwX2J5KGBUaGVybWFsIEd1aWxkYCwgYExpZmUgU3RhZ2VgKSAlPiUgDQogIHN1bW1hcmlzZShtZWFuX1Nsb3BlID0gbWVhbihTbG9wZSksIG1lYW5fUGVyY2VudCA9IG1lYW4oYFBlcmNlbnQgQ2hhbmdlYCkpICU+JSANCiAgYXJyYW5nZShtZWFuX1Nsb3BlKQ0KDQptZWFuLm1tLmFnZSA8LSBhbGwuc2xvcGVzICU+JSANCiAgZmlsdGVyKGBwLXZhbHVlYCA9PSAi4omkIDAuMDUiKSAlPiUgDQogIGdyb3VwX2J5KEFnZSkgJT4lIA0KICBzdW1tYXJpc2UobWVhbl9TbG9wZSA9IG1lYW4oU2xvcGUpLCBtZWFuX1BlcmNlbnQgPSBtZWFuKGBQZXJjZW50IENoYW5nZWApKSAlPiUgDQogIGFycmFuZ2UobWVhbl9TbG9wZSkgIA0KICANCiNudW1iZXIgb2Ygc3BlY2llcyBhZ2UgY2xhc3NlcyBzdGF0aXN0aWNhbGx5IGluY3JlYXNpbmcNCmFsbC5zbG9wZXMgJT4lIA0KICBmaWx0ZXIoYHAtdmFsdWVgID09ICLiiaQgMC4wNSIpICU+JSANCiAgZmlsdGVyKFNsb3BlID4gMCkgJT4lIA0KICBucm93KCkNCiMxNQ0KDQphbGwuc2xvcGVzICU+JSANCiAgI2ZpbHRlcihgcC12YWx1ZWAgPT0gIuKJpCAwLjA1IikgJT4lIA0KICBmaWx0ZXIoU2xvcGUgPCAwLCANCiAgICAgICAgIGBUaGVybWFsIEd1aWxkYCA9PSAiV2FybSIpICU+JSANCiAgbnJvdygpDQojMjgNCg0KI251bWJlciBvZiBzcGVjaWVzIGFnZSBjbGFzc2VzIHN0YXRpc3RpY2FsbHkgZGVjcmVhc2luZw0KYWxsLnNsb3BlcyAlPiUgDQogIGZpbHRlcihgcC12YWx1ZWAgPT0gIuKJpCAwLjA1IikgJT4lIA0KICBmaWx0ZXIoU2xvcGUgPCAwKSAlPiUgDQogIG5yb3coKQ0KIzUyDQpgYGANCg0KIyNQbG90DQpgYGB7cn0NCmFsbC5zbG9wZXMuQ0kgPC0gYWxsLnNsb3BlcyAlPiUNCiAgZ3JvdXBfYnkoU3BlY2llcykgJT4lDQogIHN1bW1hcml6ZSgNCiAgICBtZWFuID0gbWVhbihTbG9wZSksDQogICAgc2QgPSBzZChTbG9wZSksDQogICAgbiA9IG4oKSwNCiAgICBzZSA9IHNkIC8gc3FydChuKSwNCiAgICBjaV9sb3dlciA9IG1lYW4gLSBxdCgwLjk3NSwgbiAtIDEpICogc2UsDQogICAgY2lfdXBwZXIgPSBtZWFuICsgcXQoMC45NzUsIG4gLSAxKSAqIHNlDQogICkNCg0KKA0KICBzbG9wZXMuYWxsLnBsb3QgPC0gZ2dwbG90KCkgKw0KICAgIGdlb21faGxpbmUoDQogICAgICB5aW50ZXJjZXB0ID0gMCwNCiAgICAgIGNvbG9yID0gInJlZCIsDQogICAgICBsaW5ldHlwZSA9ICJkYXNoZWQiDQogICAgKSArDQogICAgDQogICAgI2dlb21fYm94cGxvdChmaWxsID0gIndoaXRlIiwgY29sb3IgPSAiYmxhY2siKSsNCiAgICBnZW9tX2Vycm9yYmFyKA0KICAgICAgZGF0YSA9IGFsbC5zbG9wZXMuQ0ksDQogICAgICBhZXMoeCA9IFNwZWNpZXMsIHltaW4gPSBjaV9sb3dlciwgeW1heCA9IGNpX3VwcGVyKSwNCiAgICAgIHdpZHRoID0gMC4yDQogICAgKSArDQogICAgZ2VvbV9wb2ludChkYXRhID0gYWxsLnNsb3Blcy5DSSwgYWVzKHggPSBTcGVjaWVzLCB5ID0gbWVhbiksIHNpemUgPSAzKSArDQogICAgZ2VvbV9qaXR0ZXIoDQogICAgICBkYXRhID0gYWxsLnNsb3BlcywNCiAgICAgIGFlcygNCiAgICAgICAgeCA9IFNwZWNpZXMsDQogICAgICAgIHkgPSBTbG9wZSwNCiAgICAgICAgY29sb3IgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIGZpbGwgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIHNoYXBlID0gYHAtdmFsdWVgLA0KICAgICAgICBncm91cCA9IFNwZWNpZXMNCiAgICAgICksDQogICAgICBzaXplID0gMiwNCiAgICAgIHdpZHRoID0gMC4yDQogICAgKSArDQogICAgIyBzY2FsZV94X2Rpc2NyZXRlKGxpbWl0cyA9IGMoIkNpc2NvIiwgIlJhaW5ib3cgVHJvdXQiLCAiQnJvd24gVHJvdXQiLCAiQmxhY2sgQ3JhcHBpZSIsDQogICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJvY2sgQmFzcyIsICJXYWxsZXllIiwgIlllbGxvdyBQZXJjaCIsICJOb3J0aGVybiBQaWtlIiwgIldoaXRlIFN1Y2tlciIsDQogICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxhcmdlbW91dGggQmFzcyIsICJTbWFsbG1vdXRoIEJhc3MiLCAiUHVtcGtpbnNlZWQgU3VuZmlzaCIsDQogICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJsdWVnaWxsIikpKw0KICAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpICsNCiAgICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgpICsNCiAgICBzY2FsZV9zaGFwZV9tYW51YWwodmFsdWVzID0gYygyLCAyMSkpICsNCiAgICBsYWJzKHkgPSAiQ2hhbmdlIGluIExlbmd0aC1hdC1BZ2UgKG1tL3lyKSIsIHggPSBOVUxMKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDEsDQogICAgIyAgIHkgPSAyLjc1LA0KICAgICMgICBsYWJlbCA9IDAuNjINCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSAyLA0KICAgICMgICB5ID0gMi43NSwNCiAgICAjICAgbGFiZWwgPSAyLjE5DQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gNCwNCiAgICAjICAgeSA9IDIuNzUsDQogICAgIyAgIGxhYmVsID0gLTAuMzENCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSA1LA0KICAgICMgICB5ID0gMi43NSwNCiAgICAjICAgbGFiZWwgPSAtMS44NA0KICAgICMgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDYsDQogICAgIyAgIHkgPSAyLjc1LA0KICAgICMgICBsYWJlbCA9IC0wLjY2DQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gNywNCiAgICAjICAgeSA9IDIuNzUsDQogICAgIyAgIGxhYmVsID0gLTAuMzENCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSA4LA0KICAgICMgICB5ID0gMi43NSwNCiAgICAjICAgbGFiZWwgPSAtMC45Mw0KICAgICMgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDksDQogICAgIyAgIHkgPSAyLjc1LA0KICAgICMgICBsYWJlbCA9IC0wLjQwDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMTAsDQogICAgIyAgIHkgPSAyLjc1LA0KICAgICMgICBsYWJlbCA9IC0wLjUwDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMTEsDQogICAgIyAgIHkgPSAyLjc1LA0KICAgICMgICBsYWJlbCA9IDAuMDINCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSAxMiwNCiAgICAjICAgeSA9IDIuNzUsDQogICAgIyAgIGxhYmVsID0gLTAuNTkNCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSAxMywNCiAgICAjICAgeSA9IDIuNzUsDQogICAgIyAgIGxhYmVsID0gLTAuMTINCiAgICAjICkgKw0KICAgIHRoZW1lX2J3KCkrDQogICAgdGhlbWUoDQogICAgICAjcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gImdyYXkiKSwNCiAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KA0KICAgICAgICBhbmdsZSA9IDQ1LA0KICAgICAgICBoanVzdCA9IDEsDQogICAgICAgIHNpemUgPSAxMg0KICAgICAgKSwNCiAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMCksDQogICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyKQ0KICAgICkNCikNCg0KZ2dzYXZlKGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9hbGxfc2xvcGVzX3RoZXJtYWwudGlmZiIsIA0KICAgICAgIHNsb3Blcy5hbGwucGxvdCwgDQogICAgICAgZHBpID0gMzAwLCB3aWR0aCA9IDIwMCwgaGVpZ2h0ID0gMTUwLCB1bml0cyA9ICJtbSIpDQpgYGANCg0KDQpgYGB7cn0NCg0KYWxsLnNsb3Blcy5wYy5DSSA8LSBhbGwuc2xvcGVzICU+JQ0KICBncm91cF9ieShTcGVjaWVzKSAlPiUNCiAgc3VtbWFyaXplKA0KICAgIG1lYW4gPSBtZWFuKGBQZXJjZW50IENoYW5nZWApLA0KICAgIHNkID0gc2QoYFBlcmNlbnQgQ2hhbmdlYCksDQogICAgbiA9IG4oKSwNCiAgICBzZSA9IHNkIC8gc3FydChuKSwNCiAgICBjaV9sb3dlciA9IG1lYW4gLSBxdCgwLjk3NSwgbiAtIDEpICogc2UsDQogICAgY2lfdXBwZXIgPSBtZWFuICsgcXQoMC45NzUsIG4gLSAxKSAqIHNlDQogICkNCg0KKA0KICBzbG9wZXMuYWxsLnBsb3QucGVyY2VudCA8LSBnZ3Bsb3QoKSArDQogICAgZ2VvbV9obGluZSgNCiAgICAgIHlpbnRlcmNlcHQgPSAwLA0KICAgICAgY29sb3IgPSAicmVkIiwNCiAgICAgIGxpbmV0eXBlID0gImRhc2hlZCINCiAgICApICsNCiAgICAjZ2VvbV9ib3hwbG90KGZpbGwgPSAid2hpdGUiLCBjb2xvciA9ICJibGFjayIpICsNCiAgICBnZW9tX2Vycm9yYmFyKGRhdGEgPSBhbGwuc2xvcGVzLnBjLkNJLA0KICAgICAgICAgICAgICAgICAgYWVzKHggPSBTcGVjaWVzLCB5bWluID0gY2lfbG93ZXIsIHltYXggPSBjaV91cHBlciksDQogICAgICAgICAgICAgICAgICB3aWR0aCA9IDAuMikgKw0KICAgIGdlb21fcG9pbnQoZGF0YSA9IGFsbC5zbG9wZXMucGMuQ0ksIGFlcyh4ID0gU3BlY2llcywgeSA9IG1lYW4pLCBzaXplID0gMykgKw0KICAgIGdlb21fcG9pbnQoDQogICAgICBkYXRhID0gYWxsLnNsb3BlcyAsDQogICAgICBhZXMoDQogICAgICAgIHggPSBTcGVjaWVzLA0KICAgICAgICB5ID0gYFBlcmNlbnQgQ2hhbmdlYCwNCiAgICAgICAgY29sb3IgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIGZpbGwgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIHNoYXBlID0gYHAtdmFsdWVgLA0KICAgICAgICBncm91cCA9IFNwZWNpZXMNCiAgICAgICksDQogICAgICBzaXplID0gMg0KICAgICkgKw0KICAgICMgc2NhbGVfeF9kaXNjcmV0ZShsaW1pdHMgPSBjKCJDaXNjbyIsICJSYWluYm93IFRyb3V0IiwgIkJyb3duIFRyb3V0IiwgIkJsYWNrIENyYXBwaWUiLA0KICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSb2NrIEJhc3MiLCAiV2FsbGV5ZSIsICJZZWxsb3cgUGVyY2giLCAiTm9ydGhlcm4gUGlrZSIsICJXaGl0ZSBTdWNrZXIiLA0KICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMYXJnZW1vdXRoIEJhc3MiLCAiU21hbGxtb3V0aCBCYXNzIiwgIlB1bXBraW5zZWVkIFN1bmZpc2giLCAiQmx1ZWdpbGwiKSkrDQogICAgc2NhbGVfY29sb3JfdmlyaWRpc19kKCkgKw0KICAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkgKw0KICAgIHNjYWxlX3NoYXBlX21hbnVhbCh2YWx1ZXMgPSBjKDIsIDE2KSkgKw0KICAgIGdlb21fdGV4dF9yZXBlbChkYXRhID0gYWxsLnNsb3BlcywNCiAgICAgIGFlcyh4ID0gU3BlY2llcywgeSA9IGBQZXJjZW50IENoYW5nZWAsIGxhYmVsID0gQWdlKSwNCiAgICAgIHNob3cubGVnZW5kID0gRiwNCiAgICAgIG1heC5vdmVybGFwcyA9IDEwMCwNCiAgICAgIG1heC5pdGVyID0gMTAwMDAwDQogICAgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDEsDQogICAgIyAgIHkgPSAwLjksDQogICAgIyAgIGxhYmVsID0gMC4xOCwNCiAgICAjICAgc2l6ZSA9IDMNCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSAyLA0KICAgICMgICB5ID0gMC45LA0KICAgICMgICBsYWJlbCA9IDAuNTEsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gNCwNCiAgICAjICAgeSA9IDAuOSwNCiAgICAjICAgbGFiZWwgPSAtMC4yMywNCiAgICAjICAgc2l6ZSA9IDMNCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSA1LA0KICAgICMgICB5ID0gMC45LA0KICAgICMgICBsYWJlbCA9IC0wLjMwLA0KICAgICMgICBzaXplID0gMw0KICAgICMgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDYsDQogICAgIyAgIHkgPSAwLjksDQogICAgIyAgIGxhYmVsID0gLTAuMTUsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gNywNCiAgICAjICAgeSA9IDAuOSwNCiAgICAjICAgbGFiZWwgPSAtMC4xNiwNCiAgICAjICAgc2l6ZSA9IDMNCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSA4LA0KICAgICMgICB5ID0gMC45LA0KICAgICMgICBsYWJlbCA9IC0wLjI0LA0KICAgICMgICBzaXplID0gMw0KICAgICMgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDksDQogICAgIyAgIHkgPSAwLjksDQogICAgIyAgIGxhYmVsID0gLTAuNDUsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMTAsDQogICAgIyAgIHkgPSAwLjksDQogICAgIyAgIGxhYmVsID0gLTAuMzIsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMTEsDQogICAgIyAgIHkgPSAwLjksDQogICAgIyAgIGxhYmVsID0gLTAuMDcsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMTIsDQogICAgIyAgIHkgPSAwLjksDQogICAgIyAgIGxhYmVsID0gLTAuMjQsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMTMsDQogICAgIyAgIHkgPSAwLjksDQogICAgIyAgIGxhYmVsID0gLTAuMjEsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICBsYWJzKHkgPSAiQW5udWFsIFBlcmNlbnQgQ2hhbmdlIGluIExlbmd0aC1hdC1BZ2UiLCB4ID0gTlVMTCkgKw0KICAgIHRoZW1lX2J3KCkrDQogICAgdGhlbWUoDQogICAgICAjcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gImdyYXkiKSwNCiAgICAgICwNCiAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KA0KICAgICAgICBhbmdsZSA9IDQ1LA0KICAgICAgICBoanVzdCA9IDEsDQogICAgICAgIHNpemUgPSAxMg0KICAgICAgKSwNCiAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMCksDQogICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyKQ0KICAgICkNCikNCg0KZ2dzYXZlKGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9hbGxfc2xvcGVzX3BlcmNlbnRfdGhlcm1hbC50aWZmIiwgDQogICAgICAgc2xvcGVzLmFsbC5wbG90LnBlcmNlbnQsIA0KICAgICAgIGRwaSA9IDMwMCwgd2lkdGggPSAyMDAsIGhlaWdodCA9IDE1MCwgdW5pdHMgPSAibW0iKQ0KYGBgDQoNClNoYXBlIGJ5IGxpZmUgc3RhZ2UNCmBgYHtyfQ0KDQphbGwuc2xvcGVzLmxpZmUuc3RhZ2UuQ0kgPC0gYWxsLnNsb3BlcyAlPiUNCiAgZ3JvdXBfYnkoU3BlY2llcywgYExpZmUgU3RhZ2VgKSAlPiUNCiAgc3VtbWFyaXplKA0KICAgIG1lYW4gPSBtZWFuKGBQZXJjZW50IENoYW5nZWApLA0KICAgIHNkID0gc2QoYFBlcmNlbnQgQ2hhbmdlYCksDQogICAgbiA9IG4oKSwNCiAgICBzZSA9IHNkIC8gc3FydChuKSwNCiAgICBjaV9sb3dlciA9IG1lYW4gLSBxdCgwLjk3NSwgbiAtIDEpICogc2UsDQogICAgY2lfdXBwZXIgPSBtZWFuICsgcXQoMC45NzUsIG4gLSAxKSAqIHNlDQogICkgJT4lIA0KICBtdXRhdGUoYExpZmUgU3RhZ2VgID0gZmN0X3JldihgTGlmZSBTdGFnZWApKQ0KDQooDQogIHNsb3Blcy5hbGwucGxvdC5wZXJjZW50LmxpZmUuc3RhZ2UgPC0gZ2dwbG90KCkgKw0KICAgIGdlb21faGxpbmUoDQogICAgICB5aW50ZXJjZXB0ID0gMCwNCiAgICAgIGNvbG9yID0gInJlZCIsDQogICAgICBsaW5ldHlwZSA9ICJkYXNoZWQiDQogICAgKSArDQogICAgIyBnZW9tX2JveHBsb3QoDQogICAgIyAgIGZpbGwgPSAid2hpdGUiLA0KICAgICMgICBjb2xvciA9ICJibGFjayIsDQogICAgIyAgIG91dGxpZXJzID0gRg0KICAgICMgKSArDQogICAgZ2VvbV9lcnJvcmJhcigNCiAgICAgIGRhdGEgPSBhbGwuc2xvcGVzLmxpZmUuc3RhZ2UuQ0ksDQogICAgICBhZXMoDQogICAgICAgIHggPSBTcGVjaWVzLA0KICAgICAgICB5bWluID0gY2lfbG93ZXIsDQogICAgICAgIHltYXggPSBjaV91cHBlciwNCiAgICAgICAgZ3JvdXAgPSBpbnRlcmFjdGlvbihgTGlmZSBTdGFnZWAsIFNwZWNpZXMpDQogICAgICApLA0KICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNCksDQogICAgICB3aWR0aCA9IDAuMg0KICAgICkgKw0KICAgIGdlb21fcG9pbnQoZGF0YSA9IGFsbC5zbG9wZXMubGlmZS5zdGFnZS5DSSwNCiAgICAgICAgICAgICAgIGFlcygNCiAgICAgICAgICAgICAgICAgeCA9IFNwZWNpZXMsDQogICAgICAgICAgICAgICAgIHkgPSBtZWFuLA0KICAgICAgICAgICAgICAgICBncm91cCA9IGludGVyYWN0aW9uKGBMaWZlIFN0YWdlYCwgU3BlY2llcykNCiAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX2RvZGdlKHdpZHRoID0gMC40KSwNCiAgICAgICAgICAgICAgIHNpemUgPSAzKSArDQogICAgZ2VvbV9qaXR0ZXIoDQogICAgICBkYXRhID0gYWxsLnNsb3BlcyAlPiUNCiAgICAgICAgbXV0YXRlKGBMaWZlIFN0YWdlYCA9IGZjdF9yZXYoYExpZmUgU3RhZ2VgKSksDQogICAgICBhZXMoDQogICAgICAgIHggPSBTcGVjaWVzLA0KICAgICAgICB5ID0gYFBlcmNlbnQgQ2hhbmdlYCwNCiAgICAgICAgY29sb3IgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIGZpbGwgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIHNoYXBlID0gYHAtdmFsdWVgLA0KICAgICAgICBncm91cCA9IGludGVyYWN0aW9uKGBMaWZlIFN0YWdlYCwgU3BlY2llcykNCiAgICAgICksDQogICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX2RvZGdlKHdpZHRoID0gMC40KSwNCiAgICAgIHNpemUgPSAyDQogICAgKSArDQogICAgIyBzY2FsZV94X2Rpc2NyZXRlKGxpbWl0cyA9IGMoIkNpc2NvIiwgIlJhaW5ib3cgVHJvdXQiLCAiQnJvd24gVHJvdXQiLCAiQmxhY2sgQ3JhcHBpZSIsDQogICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJvY2sgQmFzcyIsICJXYWxsZXllIiwgIlllbGxvdyBQZXJjaCIsICJOb3J0aGVybiBQaWtlIiwgIldoaXRlIFN1Y2tlciIsDQogICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxhcmdlbW91dGggQmFzcyIsICJTbWFsbG1vdXRoIEJhc3MiLCAiUHVtcGtpbnNlZWQgU3VuZmlzaCIsICJCbHVlZ2lsbCIpKSsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoKSArDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSArDQogICAgc2NhbGVfc2hhcGVfbWFudWFsKHZhbHVlcyA9IGMoMiwgMTYpKSArDQogICAgbGFicyh5ID0gIkFubnVhbCBQZXJjZW50IENoYW5nZSBpbiBMZW5ndGgtYXQtQWdlIiwgeCA9IE5VTEwpICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMC43NSwNCiAgICAjICAgeSA9IDAuMywNCiAgICAjICAgbGFiZWwgPSAwLjE4LA0KICAgICMgICBzaXplID0gMg0KICAgICMgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDIsDQogICAgIyAgIHkgPSAwLjYsDQogICAgIyAgIGxhYmVsID0gMC41MSwNCiAgICAjICAgc2l6ZSA9IDINCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSAzLjc1LA0KICAgICMgICB5ID0gMC4xLA0KICAgICMgICBsYWJlbCA9IC0wLjMxLA0KICAgICMgICBzaXplID0gMg0KICAgICMgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDQuMjUsDQogICAgIyAgIHkgPSAwLjIsDQogICAgIyAgIGxhYmVsID0gLTAuMTEsDQogICAgIyAgIHNpemUgPSAyDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gNC43NSwNCiAgICAjICAgeSA9IDAuMSwNCiAgICAjICAgbGFiZWwgPSAtMC4yNiwNCiAgICAjICAgc2l6ZSA9IDINCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSA1LjI1LA0KICAgICMgICB5ID0gMC4wMSwNCiAgICAjICAgbGFiZWwgPSAtMC4zMywNCiAgICAjICAgc2l6ZSA9IDINCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSA1Ljc1LA0KICAgICMgICB5ID0gMC4xNSwNCiAgICAjICAgbGFiZWwgPSAtMC4zNiwNCiAgICAjICAgc2l6ZSA9IDINCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSA2LjI1LA0KICAgICMgICB5ID0gMC4yNSwNCiAgICAjICAgbGFiZWwgPSAtMC4xMCwNCiAgICAjICAgc2l6ZSA9IDINCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSA2Ljc1LA0KICAgICMgICB5ID0gMC4xLA0KICAgICMgICBsYWJlbCA9IC0wLjIxLA0KICAgICMgICBzaXplID0gMg0KICAgICMgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDcuMjUsDQogICAgIyAgIHkgPSAwLjIsDQogICAgIyAgIGxhYmVsID0gLTAuMDgsDQogICAgIyAgIHNpemUgPSAyDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gNy43NSwNCiAgICAjICAgeSA9IC0wLjAzLA0KICAgICMgICBsYWJlbCA9IC0wLjI0LA0KICAgICMgICBzaXplID0gMg0KICAgICMgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDguNzUsDQogICAgIyAgIHkgPSAwLjEsDQogICAgIyAgIGxhYmVsID0gLTAuNDUsDQogICAgIyAgIHNpemUgPSAyDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gOS43NSwNCiAgICAjICAgeSA9IDAuMTUsDQogICAgIyAgIGxhYmVsID0gLTAuMzIsDQogICAgIyAgIHNpemUgPSAyDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMTAuNzUsDQogICAgIyAgIHkgPSAwLjAxLA0KICAgICMgICBsYWJlbCA9IC0wLjU0LA0KICAgICMgICBzaXplID0gMg0KICAgICMgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDExLjI1LA0KICAgICMgICB5ID0gMC4yNSwNCiAgICAjICAgbGFiZWwgPSAwLjEyLA0KICAgICMgICBzaXplID0gMg0KICAgICMgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDExLjc1LA0KICAgICMgICB5ID0gLTAuMDMsDQogICAgIyAgIGxhYmVsID0gLTAuMzAsDQogICAgIyAgIHNpemUgPSAyDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMTIuMjUsDQogICAgIyAgIHkgPSAwLjA1LA0KICAgICMgICBsYWJlbCA9IC0wLjE3LA0KICAgICMgICBzaXplID0gMg0KICAgICMgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDEyLjc1LA0KICAgICMgICB5ID0gMC4xNSwNCiAgICAjICAgbGFiZWwgPSAtMC40NSwNCiAgICAjICAgc2l6ZSA9IDINCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSAxMy4yNSwNCiAgICAjICAgeSA9IDAuMjUsDQogICAgIyAgIGxhYmVsID0gMC4wOSwNCiAgICAjICAgc2l6ZSA9IDINCiAgICAjICkgKw0KICAgIHRoZW1lX2J3KCkrDQogICAgdGhlbWUoDQogICAgICAjcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gImdyYXkiKSwNCiAgICAgICwNCiAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KA0KICAgICAgICBhbmdsZSA9IDQ1LA0KICAgICAgICBoanVzdCA9IDEsDQogICAgICAgIHNpemUgPSAxMg0KICAgICAgKSwNCiAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMCksDQogICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyKQ0KICAgICkNCikNCg0KZ2dzYXZlKGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9hbGxfc2xvcGVzX3BlcmNlbnRfdGhlcm1hbF9saWZlX3N0YWdlLnRpZmYiLCANCiAgICAgICBzbG9wZXMuYWxsLnBsb3QucGVyY2VudC5saWZlLnN0YWdlLCANCiAgICAgICBkcGkgPSAzMDAsIHdpZHRoID0gMjAwLCBoZWlnaHQgPSAxNTAsIHVuaXRzID0gIm1tIikNCmBgYA0KDQpCcmVhayBhZHVsdHMgYW5kIGp1dmVuaWxlcyBpbnRvIHRoZWlyIG93biBwYW5lbHMNCkp1dmVuaWxlcw0KYGBge3J9DQooDQogIHNsb3Blcy5hbGwucGxvdC5wZXJjZW50Lmp1dmVuaWxlIDwtIGdncGxvdChkYXRhID0gYWxsLnNsb3Blcy5saWZlLnN0YWdlLkNJICU+JSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoYExpZmUgU3RhZ2VgID09ICJKdXZlbmlsZSIpKSArDQogICAgZ2VvbV9obGluZSgNCiAgICAgIHlpbnRlcmNlcHQgPSAwLA0KICAgICAgY29sb3IgPSAicmVkIiwNCiAgICAgIGxpbmV0eXBlID0gImRhc2hlZCINCiAgICApICsNCiAgICBnZW9tX2Vycm9yYmFyKA0KICAgICAgYWVzKA0KICAgICAgICB4ID0gU3BlY2llcywNCiAgICAgICAgeW1pbiA9IGNpX2xvd2VyLA0KICAgICAgICB5bWF4ID0gY2lfdXBwZXIsDQogICAgICAgIGdyb3VwID0gaW50ZXJhY3Rpb24oYExpZmUgU3RhZ2VgLCBTcGVjaWVzKQ0KICAgICAgKSwNCiAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAwLjQpLA0KICAgICAgd2lkdGggPSAwLjINCiAgICApICsNCiAgICBnZW9tX3BvaW50KA0KICAgICAgICAgICAgICAgYWVzKA0KICAgICAgICAgICAgICAgICB4ID0gU3BlY2llcywNCiAgICAgICAgICAgICAgICAgeSA9IG1lYW4sDQogICAgICAgICAgICAgICAgIGdyb3VwID0gaW50ZXJhY3Rpb24oYExpZmUgU3RhZ2VgLCBTcGVjaWVzKQ0KICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAwLjQpLA0KICAgICAgICAgICAgICAgc2l6ZSA9IDMpICsNCiAgICBnZW9tX2ppdHRlcigNCiAgICAgIGRhdGEgPSBhbGwuc2xvcGVzICU+JQ0KICAgICAgICBmaWx0ZXIoYExpZmUgU3RhZ2VgID09ICJKdXZlbmlsZSIpLA0KICAgICAgYWVzKA0KICAgICAgICB4ID0gU3BlY2llcywNCiAgICAgICAgeSA9IGBQZXJjZW50IENoYW5nZWAsDQogICAgICAgIGNvbG9yID0gYFRoZXJtYWwgR3VpbGRgLA0KICAgICAgICBmaWxsID0gYFRoZXJtYWwgR3VpbGRgLA0KICAgICAgICBzaGFwZSA9IGBwLXZhbHVlYCwNCiAgICAgICAgI2dyb3VwID0gaW50ZXJhY3Rpb24oYExpZmUgU3RhZ2VgLCBTcGVjaWVzKQ0KICAgICAgKSwNCiAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAwLjQpLA0KICAgICAgc2l6ZSA9IDINCiAgICApICsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoKSArDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSArDQogICAgc2NhbGVfc2hhcGVfbWFudWFsKHZhbHVlcyA9IGMoMiwgMTYpKSArDQogICAgbGFicyh5ID0gIkFubnVhbCBQZXJjZW50IENoYW5nZSBpbiBMZW5ndGgtYXQtQWdlIiwgDQogICAgICAgICB4ID0gTlVMTCwNCiAgICAgICAgIHRpdGxlID0gIkp1dmVuaWxlcyIpICsNCiAgICB0aGVtZV9idygpKw0KICAgIHRoZW1lKA0KICAgICAgI3BhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJncmF5IiksDQogICAgICAsDQogICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dCgNCiAgICAgICAgYW5nbGUgPSA0NSwNCiAgICAgICAgaGp1c3QgPSAxLA0KICAgICAgICBzaXplID0gMTINCiAgICAgICksDQogICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTApLA0KICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMikNCiAgICApDQopDQpgYGANCg0KSnV2ZW5pbGVzDQpgYGB7cn0NCigNCiAgc2xvcGVzLmFsbC5wbG90LnBlcmNlbnQuYWR1bHQgPC0gZ2dwbG90KGRhdGEgPSBhbGwuc2xvcGVzLmxpZmUuc3RhZ2UuQ0kgJT4lIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihgTGlmZSBTdGFnZWAgPT0gIkFkdWx0IikpICsNCiAgICBnZW9tX2hsaW5lKA0KICAgICAgeWludGVyY2VwdCA9IDAsDQogICAgICBjb2xvciA9ICJyZWQiLA0KICAgICAgbGluZXR5cGUgPSAiZGFzaGVkIg0KICAgICkgKw0KICAgIGdlb21fZXJyb3JiYXIoDQogICAgICBhZXMoDQogICAgICAgIHggPSBTcGVjaWVzLA0KICAgICAgICB5bWluID0gY2lfbG93ZXIsDQogICAgICAgIHltYXggPSBjaV91cHBlciwNCiAgICAgICAgZ3JvdXAgPSBpbnRlcmFjdGlvbihgTGlmZSBTdGFnZWAsIFNwZWNpZXMpDQogICAgICApLA0KICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNCksDQogICAgICB3aWR0aCA9IDAuMg0KICAgICkgKw0KICAgIGdlb21fcG9pbnQoDQogICAgICAgICAgICAgICBhZXMoDQogICAgICAgICAgICAgICAgIHggPSBTcGVjaWVzLA0KICAgICAgICAgICAgICAgICB5ID0gbWVhbiwNCiAgICAgICAgICAgICAgICAgZ3JvdXAgPSBpbnRlcmFjdGlvbihgTGlmZSBTdGFnZWAsIFNwZWNpZXMpDQogICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNCksDQogICAgICAgICAgICAgICBzaXplID0gMykgKw0KICAgIGdlb21faml0dGVyKA0KICAgICAgZGF0YSA9IGFsbC5zbG9wZXMgJT4lDQogICAgICAgIGZpbHRlcihgTGlmZSBTdGFnZWAgPT0gIkFkdWx0IiksDQogICAgICBhZXMoDQogICAgICAgIHggPSBTcGVjaWVzLA0KICAgICAgICB5ID0gYFBlcmNlbnQgQ2hhbmdlYCwNCiAgICAgICAgY29sb3IgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIGZpbGwgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIHNoYXBlID0gYHAtdmFsdWVgLA0KICAgICAgICAjZ3JvdXAgPSBpbnRlcmFjdGlvbihgTGlmZSBTdGFnZWAsIFNwZWNpZXMpDQogICAgICApLA0KICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNCksDQogICAgICBzaXplID0gMg0KICAgICkgKw0KICAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpICsNCiAgICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgpICsNCiAgICBzY2FsZV9zaGFwZV9tYW51YWwodmFsdWVzID0gYygyLCAxNikpICsNCiAgICBsYWJzKHkgPSAiQW5udWFsIFBlcmNlbnQgQ2hhbmdlIGluIExlbmd0aC1hdC1BZ2UiLCANCiAgICAgICAgIHggPSBOVUxMLA0KICAgICAgICAgdGl0bGUgPSAiQWR1bHRzIikgKw0KICAgIHRoZW1lX2J3KCkrDQogICAgdGhlbWUoDQogICAgICAjcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gImdyYXkiKSwNCiAgICAgICwNCiAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KA0KICAgICAgICBhbmdsZSA9IDQ1LA0KICAgICAgICBoanVzdCA9IDEsDQogICAgICAgIHNpemUgPSAxMg0KICAgICAgKSwNCiAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMCksDQogICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyKQ0KICAgICkNCikNCmBgYA0KDQpQbG90IGJ5IGFnZSBjbGFzcyBpbnN0ZWFkIG9mIHNwZWNpZXMNCmBgYHtyfQ0KYWxsLnNsb3Blcy5hZ2UuQ0kgPC0gYWxsLnNsb3BlcyAlPiUNCiAgZ3JvdXBfYnkoQWdlKSAlPiUNCiAgc3VtbWFyaXplKA0KICAgIG1lYW4gPSBtZWFuKGBQZXJjZW50IENoYW5nZWApLA0KICAgIHNkID0gc2QoYFBlcmNlbnQgQ2hhbmdlYCksDQogICAgbiA9IG4oKSwNCiAgICBzZSA9IHNkIC8gc3FydChuKSwNCiAgICBjaV9sb3dlciA9IG1lYW4gLSBxdCgwLjk3NSwgbiAtIDEpICogc2UsDQogICAgY2lfdXBwZXIgPSBtZWFuICsgcXQoMC45NzUsIG4gLSAxKSAqIHNlDQogICkgDQoNCigNCiAgc2xvcGVzLmFsbC5wbG90LnBlcmNlbnQuYWdlLmNsYXNzIDwtIGdncGxvdCgpICsNCiAgICBnZW9tX2hsaW5lKA0KICAgICAgeWludGVyY2VwdCA9IDAsDQogICAgICBjb2xvciA9ICJyZWQiLA0KICAgICAgbGluZXR5cGUgPSAiZGFzaGVkIg0KICAgICkgKw0KICAgICMgZ2VvbV9ib3hwbG90KA0KICAgICMgICBmaWxsID0gIndoaXRlIiwNCiAgICAjICAgY29sb3IgPSAiYmxhY2siLA0KICAgICMgICBvdXRsaWVycyA9IEYNCiAgICAjICkgKw0KICAgIGdlb21fZXJyb3JiYXIoDQogICAgICBkYXRhID0gYWxsLnNsb3Blcy5hZ2UuQ0ksDQogICAgICBhZXMoDQogICAgICAgIHggPSBBZ2UsDQogICAgICAgIHltaW4gPSBjaV9sb3dlciwNCiAgICAgICAgeW1heCA9IGNpX3VwcGVyDQogICAgICApLA0KICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNCksDQogICAgICB3aWR0aCA9IDAuMg0KICAgICkgKw0KICAgIGdlb21fcG9pbnQoZGF0YSA9IGFsbC5zbG9wZXMuYWdlLkNJLA0KICAgICAgICAgICAgICAgYWVzKA0KICAgICAgICAgICAgICAgICB4ID0gQWdlLA0KICAgICAgICAgICAgICAgICB5ID0gbWVhbiwNCiAgICAgICAgICAgICAgICksDQogICAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX2RvZGdlKHdpZHRoID0gMC40KSwNCiAgICAgICAgICAgICAgIHNpemUgPSAzKSArDQogICAgZ2VvbV9qaXR0ZXIoZGF0YSA9IGFsbC5zbG9wZXMgLA0KICAgIGFlcygNCiAgICAgIHggPSBBZ2UsDQogICAgICB5ID0gYFBlcmNlbnQgQ2hhbmdlYCwNCiAgICAgIGNvbG9yID0gYFRoZXJtYWwgR3VpbGRgLA0KICAgICAgZmlsbCA9IGBUaGVybWFsIEd1aWxkYCwNCiAgICAgIHNoYXBlID0gYHAtdmFsdWVgDQogICAgKSwgDQogICAgd2lkdGggPSAwLjIsIA0KICAgIHNpemUgPSAyKSArDQogICAgI2dlb21fdGV4dChhZXMobGFiZWwgPSBzcHBfY29kZSkpKw0KICAgICMgc2NhbGVfeF9kaXNjcmV0ZShsaW1pdHMgPSBjKCJDaXNjbyIsICJSYWluYm93IFRyb3V0IiwgIkJyb3duIFRyb3V0IiwgIkJsYWNrIENyYXBwaWUiLA0KICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSb2NrIEJhc3MiLCAiV2FsbGV5ZSIsICJZZWxsb3cgUGVyY2giLCAiTm9ydGhlcm4gUGlrZSIsICJXaGl0ZSBTdWNrZXIiLA0KICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMYXJnZW1vdXRoIEJhc3MiLCAiU21hbGxtb3V0aCBCYXNzIiwgIlB1bXBraW5zZWVkIFN1bmZpc2giLCAiQmx1ZWdpbGwiKSkrDQogICAgc2NhbGVfY29sb3JfdmlyaWRpc19kKCkgKw0KICAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkgKw0KICAgIHNjYWxlX3NoYXBlX21hbnVhbCh2YWx1ZXMgPSBjKDIsIDE2KSkgKw0KICAgIGxhYnMoeSA9ICJBbm51YWwgUGVyY2VudCBDaGFuZ2UgaW4gTGVuZ3RoLWF0LUFnZSIpICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMSwNCiAgICAjICAgeSA9IDAuMDUsDQogICAgIyAgIGxhYmVsID0gLTAuNjYsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMiwNCiAgICAjICAgeSA9IDAuMjUsDQogICAgIyAgIGxhYmVsID0gLTAuNTcsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMywNCiAgICAjICAgeSA9IDAuNSwNCiAgICAjICAgbGFiZWwgPSAtMC4xOCwNCiAgICAjICAgc2l6ZSA9IDMNCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSA0LA0KICAgICMgICB5ID0gMC41LA0KICAgICMgICBsYWJlbCA9IC0wLjA4LA0KICAgICMgICBzaXplID0gMw0KICAgICMgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDUsDQogICAgIyAgIHkgPSAwLjUsDQogICAgIyAgIGxhYmVsID0gMC4wNCwNCiAgICAjICAgc2l6ZSA9IDMNCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSA2LA0KICAgICMgICB5ID0gMC41LA0KICAgICMgICBsYWJlbCA9IDAuMDEsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gNywNCiAgICAjICAgeSA9IDAuNSwNCiAgICAjICAgbGFiZWwgPSAtMC4wMywNCiAgICAjICAgc2l6ZSA9IDMNCiAgICAjICkgKw0KICAgICMgYW5ub3RhdGUoDQogICAgIyAgIGdlb20gPSAidGV4dCIsDQogICAgIyAgIHggPSA4LA0KICAgICMgICB5ID0gMC41LA0KICAgICMgICBsYWJlbCA9IC0wLjA5LA0KICAgICMgICBzaXplID0gMw0KICAgICMgKSArDQogICAgIyBhbm5vdGF0ZSgNCiAgICAjICAgZ2VvbSA9ICJ0ZXh0IiwNCiAgICAjICAgeCA9IDksDQogICAgIyAgIHkgPSAwLjUsDQogICAgIyAgIGxhYmVsID0gLTAuMTIsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMTAsDQogICAgIyAgIHkgPSAwLjUsDQogICAgIyAgIGxhYmVsID0gLTAuMjMsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMTEsDQogICAgIyAgIHkgPSAwLjUsDQogICAgIyAgIGxhYmVsID0gLTAuMjEsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICAjIGFubm90YXRlKA0KICAgICMgICBnZW9tID0gInRleHQiLA0KICAgICMgICB4ID0gMTMsDQogICAgIyAgIHkgPSAwLjUsDQogICAgIyAgIGxhYmVsID0gLTAuMTgsDQogICAgIyAgIHNpemUgPSAzDQogICAgIyApICsNCiAgICB0aGVtZV9idygpKw0KICAgIHRoZW1lKA0KICAgICAgI3BhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJncmF5IiksDQogICAgICAjYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxLCBzaXplID0gMTIpLA0KICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwKSwNCiAgICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTIpDQogICAgKQ0KKQ0KDQpnZ3NhdmUoZmlsZW5hbWUgPSAifi9HaXRIdWIvRUFHRVJfZ3Jvd3RoL091dHB1dHMvRmlndXJlcy9MaW5lYXIgTW9kZWxzL2FsbF9zbG9wZXNfcGVyY2VudF9hZ2VfY2xhc3MudGlmZiIsIA0KICAgICAgIHNsb3Blcy5hbGwucGxvdC5wZXJjZW50LmFnZS5jbGFzcywgDQogICAgICAgZHBpID0gMzAwLCB3aWR0aCA9IDIwMCwgaGVpZ2h0ID0gMTUwLCB1bml0cyA9ICJtbSIpDQpgYGANCg0KYGBge3J9DQooc2xvcGVzLmFsbC5wbG90LnBlcmNlbnQuYWdlLmNsYXNzLnNwcC5mYWNldCA8LSBnZ3Bsb3QoZGF0YSA9IGFsbC5zbG9wZXMgLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gQWdlLCB5ID0gYFBlcmNlbnQgQ2hhbmdlYCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBgVGhlcm1hbCBHdWlsZGAsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGwgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUgPSBgcC12YWx1ZWAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPSBBZ2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSsNCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gMCwgY29sb3IgPSAicmVkIiwgbGluZXR5cGUgPSAiZGFzaGVkIikrDQogIGdlb21fcG9pbnQoc2l6ZSA9IDIpKw0KICBmYWNldF93cmFwKH5TcGVjaWVzKSsNCiAgc2NhbGVfY29sb3JfdmlyaWRpc19kKCkrDQogIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkrDQogIHNjYWxlX3NoYXBlX21hbnVhbCh2YWx1ZXMgPSBjKDIsIDE2KSkrIA0KICBsYWJzKHkgPSAiQW5udWFsIFBlcmNlbnQgQ2hhbmdlIGluIExlbmd0aC1hdC1BZ2UiKSsNCiAgdGhlbWVfYncoKSsNCiAgdGhlbWUoI3BhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJncmF5IiksDQogICAgICAgICNheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEsIHNpemUgPSAxMiksDQogICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KHNpemUgPSA4KSwgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMCksDQogICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KHNpemUgPSA4KSwNCiAgICAgICAgc3RyaXAudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gOCkpDQopDQoNCmdnc2F2ZShmaWxlbmFtZSA9ICJ+L0dpdEh1Yi9FQUdFUl9ncm93dGgvT3V0cHV0cy9GaWd1cmVzL0xpbmVhciBNb2RlbHMvYWxsX3Nsb3Blc19wZXJjZW50X2FnZV9jbGFzc19zcHBfZmFjZXQudGlmZiIsIA0KICAgICAgIHNsb3Blcy5hbGwucGxvdC5wZXJjZW50LmFnZS5jbGFzcy5zcHAuZmFjZXQsIA0KICAgICAgIGRwaSA9IDMwMCwgd2lkdGggPSAyMDAsIGhlaWdodCA9IDE1MCwgdW5pdHMgPSAibW0iKQ0KYGBgDQoNCk11bHRpLXBhbmVsIGZpZ3VyZSB0byBpbmNsdWRlIGluIHRleHQgdGhhdCBzaG93cyB0cmVuZHMgYnkgc3BlY2llcyBhbmQgYnkgYWdlIGNsYXNzDQpgYGB7cn0NCmFnZS5jbGFzcy5zcGVjaWVzLm11bHRpLnBhbmVsLnBsb3QgPC0gZ2dhcnJhbmdlKHNsb3Blcy5hbGwucGxvdC5wZXJjZW50LmFnZS5jbGFzcywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG9wZXMuYWxsLnBsb3QucGVyY2VudC5hZ2UuY2xhc3Muc3BwLmZhY2V0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvcGVzLmFsbC5wbG90LnBlcmNlbnQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG9wZXMuYWxsLnBsb3QucGVyY2VudC5saWZlLnN0YWdlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmNvbCA9IDIsIG5yb3cgPSAyLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbi5sZWdlbmQgPSBULCBsZWdlbmQgPSAicmlnaHQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gIkFVVE8iLCBsYWJlbC54ID0gMC4wNCkNCg0KYWdlLmNsYXNzLnNwZWNpZXMubXVsdGkucGFuZWwucGxvdA0KDQpnZ3NhdmUoZmlsZW5hbWUgPSAifi9HaXRIdWIvRUFHRVJfZ3Jvd3RoL091dHB1dHMvRmlndXJlcy9MaW5lYXIgTW9kZWxzL2FnZV9jbGFzc19zcGVjaWVzX211bHRpLXBhbmVsX3Bsb3QudGlmZiIsIA0KICAgICAgIGFnZS5jbGFzcy5zcGVjaWVzLm11bHRpLnBhbmVsLnBsb3QsIA0KICAgICAgIGRwaSA9IDMwMCwgd2lkdGggPSAyNjcsIGhlaWdodCA9IDIwMCwgdW5pdHMgPSAibW0iKQ0KDQpgYGANCg0KVHdvLXBhbmVsIHZlcnNpb24NCmBgYHtyfQ0KYWdlLmNsYXNzLnNwZWNpZXMudHdvLnBhbmVsLnBsb3QgPC0gZ2dhcnJhbmdlKA0KICBzbG9wZXMuYWxsLnBsb3QucGVyY2VudC5hZ2UuY2xhc3MsDQogIHNsb3Blcy5hbGwucGxvdC5wZXJjZW50LmxpZmUuc3RhZ2UsDQogIG5jb2wgPSAxLA0KICBucm93ID0gMiwNCiAgY29tbW9uLmxlZ2VuZCA9IFQsDQogIGxlZ2VuZCA9ICJyaWdodCIsDQogIGxhYmVscyA9ICJBVVRPIiwNCiAgbGFiZWwueCA9IDAuMDMNCikNCg0KYWdlLmNsYXNzLnNwZWNpZXMudHdvLnBhbmVsLnBsb3QNCg0KZ2dzYXZlKGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9hZ2VfY2xhc3Nfc3BlY2llc190d28tcGFuZWxfcGxvdC50aWZmIiwgDQogICAgICAgYWdlLmNsYXNzLnNwZWNpZXMudHdvLnBhbmVsLnBsb3QsIA0KICAgICAgIGRwaSA9IDMwMCwgd2lkdGggPSAyMDAsIGhlaWdodCA9IDI1MCwgdW5pdHMgPSAibW0iKQ0KYGBgDQoNCiMgTW9kZWwgb2Ygc2xvcGVzIHdpdGggRlRQDQojIyBhbGwgc2xvcGVzDQoNClZpc3VhbGl6ZSB0aGUgcmVsYXRpb25zaGlwcw0KYGBge3J9DQojQ2hlY2sgYXNzdW1wdGlvbnMNCiNsaW5lYXIgcmVsYXRpb25zaGlwcw0KKHNsb3Blcy5saW5lYXIucGxvdCA8LSBnZ3NjYXR0ZXIoZGF0YSA9IGFsbC5zbG9wZXMsIHggPSAiRlRQIiwgeSA9ICJQZXJjZW50IENoYW5nZSIsIGNvbG9yID0gIkxpZmUgU3RhZ2UiLCBhZGQgPSAicmVnLmxpbmUiKSsNCiAgc3RhdF9yZWdsaW5lX2VxdWF0aW9uKGFlcyhsYWJlbCA9ICBwYXN0ZSguLmVxLmxhYmVsLi4sIC4ucnIubGFiZWwuLiwgc2VwID0gIn5+fn4iKSwgY29sb3IgPSBgTGlmZSBTdGFnZWApKSsNCiAgc2NhbGVfY29sb3JfdmlyaWRpc19kKGVuZCA9IDAuOCkNCikNCg0KIyBnZ3NhdmUoZmlsZW5hbWUgPSAifi9HaXRIdWIvRUFHRVJfZ3Jvd3RoL091dHB1dHMvRmlndXJlcy9MaW5lYXIgTW9kZWxzL2FsbF9zbG9wZXNfbGluZWFyX3JlbGF0aW9uc2hpcHMudGlmZiIsIA0KIyAgICAgICAgc2xvcGVzLmxpbmVhci5wbG90LCANCiMgICAgICAgIGRwaSA9IDMwMCwgd2lkdGggPSAyMDAsIGhlaWdodCA9IDE1MCwgdW5pdHMgPSAibW0iKQ0KYGBgDQoNCkNoZWNrIGFzc3VtcHRpb25zDQpgYGB7cn0NCiNob21vZ2VuZWl0eSBvZiByZWdyZXNzaW9uIHNsb3Blcw0KYW5vdmFfdGVzdChgUGVyY2VudCBDaGFuZ2VgIH4gRlRQKmBMaWZlIFN0YWdlYCwgZGF0YSA9IGFsbC5zbG9wZXMpICMgbm90IGlkZWFsDQoNCnNsb3Blcy5tb2RlbCA8LSBsbShgUGVyY2VudCBDaGFuZ2VgIH4gRlRQKmBMaWZlIFN0YWdlYCwgZGF0YSA9IGFsbC5zbG9wZXMpDQpzdW1tYXJ5KHNsb3Blcy5tb2RlbCkNCg0Kc2xvcGVzLm1vZGVsLm1ldHJpYyA8LSBhdWdtZW50KHNsb3Blcy5tb2RlbCkgDQoNCiNub3JtYWxpdHkgb2YgcmVzaWR1YWxzDQpzbG9wZXMuc2hhcGlybyA8LSBzaGFwaXJvX3Rlc3Qoc2xvcGVzLm1vZGVsLm1ldHJpYyQucmVzaWQpDQpzbG9wZXMuc2hhcGlybyAjIHAgPCAwLjA1IA0KaGlzdChzY2FsZShhbGwuc2xvcGVzJGBQZXJjZW50IENoYW5nZWApKQ0KDQojaG9tb2dlbmVpdHkgb2YgdmFyaWFuY2VzDQpzbG9wZXMubGV2ZW5lIDwtIHNsb3Blcy5tb2RlbC5tZXRyaWMgJT4lIGxldmVuZV90ZXN0KC5yZXNpZCB+IGBMaWZlIFN0YWdlYCkNCnNsb3Blcy5sZXZlbmUgIyBwID0gMC40MyA9PiBtZWV0cyBhc3N1bXB0aW9ucw0KDQojb3V0bGllcnMNCnNsb3Blcy5tb2RlbC5tZXRyaWMgJT4lIA0KICBmaWx0ZXIoYWJzKC5zdGQucmVzaWQpID4gMykgJT4lDQogIGFzLmRhdGEuZnJhbWUoKSAjbm8gb3V0bGllcnMNCg0KcmVzLmFvdiA8LSBhbGwuc2xvcGVzICU+JSBhbm92YV90ZXN0KGBQZXJjZW50IENoYW5nZWAgfiBGVFAgKyBgTGlmZSBTdGFnZWApDQpnZXRfYW5vdmFfdGFibGUocmVzLmFvdikNCg0KcHdjIDwtIGFsbC5zbG9wZXMgJT4lIA0KICByZW5hbWUobGlmZV9zdGFnZSAgPSBgTGlmZSBTdGFnZWAsDQogICAgICAgICBwZXJjZW50X2NoYW5nZSA9IGBQZXJjZW50IENoYW5nZWApICU+JSANCiAgZW1tZWFuc190ZXN0KA0KICAgIHBlcmNlbnRfY2hhbmdlIH4gbGlmZV9zdGFnZSwgY292YXJpYXRlID0gRlRQLA0KICAgIHAuYWRqdXN0Lm1ldGhvZCA9ICJib25mZXJvbm5pIg0KICAgICkNCnB3Yw0KDQpnZXRfZW1tZWFucyhwd2MpDQpgYGANCg0KVmlzdWFsaXplIHBhaXJ3aXNlIGNvbXBhcmlzb25zIA0KYGBge3J9DQojIFZpc3VhbGl6YXRpb246IGxpbmUgcGxvdHMgd2l0aCBwLXZhbHVlcw0KcHdjIDwtIHB3YyAlPiUgYWRkX3h5X3Bvc2l0aW9uKHggPSAibGlmZV9zdGFnZSIsIGZ1biA9ICJtZWFuX3NlIikNCg0KKHNsb3Blcy5hbmNvdmEuZW1tZWFucy5wbG90IDwtIGdnbGluZShnZXRfZW1tZWFucyhwd2MpLCB4ID0gImxpZmVfc3RhZ2UiLCB5ID0gImVtbWVhbiIpICsNCiAgZ2VvbV9lcnJvcmJhcihhZXMoeW1pbiA9IGNvbmYubG93LCB5bWF4ID0gY29uZi5oaWdoKSwgd2lkdGggPSAwLjIpICsgDQogIHN0YXRfcHZhbHVlX21hbnVhbChwd2MsIGhpZGUubnMgPSBUUlVFLCB0aXAubGVuZ3RoID0gRkFMU0UpICsNCiAgbGFicygNCiAgICBzdWJ0aXRsZSA9IGdldF90ZXN0X2xhYmVsKHJlcy5hb3YsIGRldGFpbGVkID0gVFJVRSksDQogICAgY2FwdGlvbiA9IGdldF9wd2NfbGFiZWwocHdjKSwNCiAgICB4ID0gIkxpZmUgU3RhZ2UiLCB5ID0gIkVzdGltYXRlZCBNYXJnaW5hbCBNZWFucyIpDQopDQoNCiMgZ2dzYXZlKGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9hbGxfc2xvcGVzX3BlcmNlbnRfYWdlX2NsYXNzX3NwcF9mYWNldC50aWZmIiwgDQojICAgICAgICBzbG9wZXMuYW5jb3ZhLmVtbWVhbnMucGxvdCwgDQojICAgICAgICBkcGkgPSAzMDAsIHdpZHRoID0gMjAwLCBoZWlnaHQgPSAxNTAsIHVuaXRzID0gIm1tIikNCmBgYA0KDQpTdGFjayBwbG90cw0KYGBge3J9DQphbGwuc2xvcGVzLmFuY292YS5zdGFjayA8LSBnZ2FycmFuZ2Uoc2xvcGVzLmxpbmVhci5wbG90LCBzbG9wZXMuYW5jb3ZhLmVtbWVhbnMucGxvdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuY29sID0gMSwgbnJvdyAgPSAyLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9ICJBVVRPIikNCg0KYWxsLnNsb3Blcy5hbmNvdmEuc3RhY2sNCg0KZ2dzYXZlKGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9hbGxfc2xvcGVzX2FuY292YV9zdGFjay50aWZmIiwgDQogICAgICAgYWxsLnNsb3Blcy5hbmNvdmEuc3RhY2ssIA0KICAgICAgIGRwaSA9IDMwMCwgd2lkdGggPSAyMDAsIGhlaWdodCA9IDE1MCwgdW5pdHMgPSAibW0iKQ0KYGBgDQoNCiMjIHNpZyBkaWZmIGZyb20gMCBzbG9wZXMNClZpc3VhbGl6ZSB0aGUgcmVsYXRpb25zaGlwDQpgYGB7cn0NCmFsbC5zbG9wZXMuc2lnLmRpZiA8LSBhbGwuc2xvcGVzICU+JSBmaWx0ZXIocC52YWx1ZSA8IDAuMDUpDQoNCiNjYWxjdWxhdGUgcXVhbnRpbGVzDQphbGwuc2xvcGVzLnNpZy5kaWYucXVhbnRzIDwtIHF1YW50aWxlKGFsbC5zbG9wZXMuc2lnLmRpZiRgUGVyY2VudCBDaGFuZ2VgLCBjKDAuMDI1LCAwLjk3NSkpDQoNCiNpZGVudGlmeSBwb2ludHMgb3V0c2lkZSAyLjUlIGFuZCA5Ny41JSBxdWFudGlsZXMNCmFsbC5zbG9wZXMuc2lnLmRpZiA8LSBhbGwuc2xvcGVzLnNpZy5kaWYgJT4lIA0KICBtdXRhdGUoT3V0bGllciA9IGNhc2Vfd2hlbigNCiAgICBTbG9wZSA8IC0wLjgxMDc0MTYgfiAiQmVsb3cgMi41JSIsDQogICAgU2xvcGUgPiAtMC44MTA3NDE2ICYgU2xvcGUgPCAwLjM5MjI0OTUgIH4gIk5vdCBvdXRsaWVycyIsDQogICAgU2xvcGUgPiAwLjM5MjI0OTUgIH4gIkFib3ZlIDk3LjUlIg0KICApKQ0KI2xpbmVhciByZWxhdGlvbnNoaXBzDQooc2xvcGVzLnNpZy5kaWYubGluZWFyLnBsb3QgPC0gZ2dzY2F0dGVyKGRhdGEgPSBhbGwuc2xvcGVzLnNpZy5kaWYsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggPSAiRlRQIiwgeSA9ICJQZXJjZW50IENoYW5nZSIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gIkxpZmUgU3RhZ2UiLCBhZGQgPSAicmVnLmxpbmUiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIywgc2hhcGUgPSAiT3V0bGllciINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKw0KICBzdGF0X3JlZ2xpbmVfZXF1YXRpb24oYWVzKGxhYmVsID0gIHBhc3RlKC4uZXEubGFiZWwuLiwgLi5yci5sYWJlbC4uLCBzZXAgPSAifn5+fiIpLCBjb2xvciA9IGBMaWZlIFN0YWdlYCkpKw0KICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoZW5kID0gMC44KSsNCiAgc2NhbGVfc2hhcGVfbWFudWFsKHZhbHVlcyA9IGMoMSwgMiwgMTkpKQ0KKQ0KYGBgDQoNCkNoZWNrIGFzc3VtcHRpb25zDQpgYGB7cn0NCiNob21vZ2VuZWl0eSBvZiByZWdyZXNzaW9uIHNsb3Blcw0KYW5vdmFfdGVzdChgUGVyY2VudCBDaGFuZ2VgIH4gRlRQKmBMaWZlIFN0YWdlYCwgZGF0YSA9IGFsbC5zbG9wZXMuc2lnLmRpZikgIyBub3QgaWRlYWwNCg0Kc2xvcGVzLm1vZGVsLnNpZy5kaWYgPC0gbG0oYFBlcmNlbnQgQ2hhbmdlYCB+IEZUUCpgTGlmZSBTdGFnZWAsIGRhdGEgPSBhbGwuc2xvcGVzLnNpZy5kaWYpDQpzdW1tYXJ5KHNsb3Blcy5tb2RlbC5zaWcuZGlmKQ0KDQpzbG9wZXMubW9kZWwubWV0cmljLnNpZy5kaWYgPC0gYXVnbWVudChzbG9wZXMubW9kZWwuc2lnLmRpZikgDQoNCiNub3JtYWxpdHkgb2YgcmVzaWR1YWxzDQpzbG9wZXMuc2hhcGlyby5zaWcuZGlmIDwtIHNoYXBpcm9fdGVzdChzbG9wZXMubW9kZWwubWV0cmljLnNpZy5kaWYkLnJlc2lkKQ0Kc2xvcGVzLnNoYXBpcm8uc2lnLmRpZiAjIHAgPSAwLjAwMSA9PiB2aW9sYXRlcyBhc3N1bXB0aW9ucw0KDQojaG9tb2dlbmVpdHkgb2YgdmFyaWFuY2VzDQpzbG9wZXMubGV2ZW5lLnNpZy5kaWYgPC0gc2xvcGVzLm1vZGVsLm1ldHJpYy5zaWcuZGlmICU+JSBsZXZlbmVfdGVzdCgucmVzaWQgfiBgTGlmZSBTdGFnZWApDQpzbG9wZXMubGV2ZW5lLnNpZy5kaWYgIyBwID0gMC4xNyA9PiBtZWV0cyBhc3N1bXB0aW9ucw0KDQojb3V0bGllcnMNCnNsb3Blcy5tb2RlbC5tZXRyaWMuc2lnLmRpZiAlPiUgDQogIGZpbHRlcihhYnMoLnN0ZC5yZXNpZCkgPiAzKSAlPiUNCiAgYXMuZGF0YS5mcmFtZSgpICN0d28gb3V0bGllcnMNCg0KcmVzLmFvdi5zaWcuZGlmIDwtIGFsbC5zbG9wZXMuc2lnLmRpZiAlPiUgYW5vdmFfdGVzdChgUGVyY2VudCBDaGFuZ2VgIH4gRlRQICsgYExpZmUgU3RhZ2VgKQ0KZ2V0X2Fub3ZhX3RhYmxlKHJlcy5hb3Yuc2lnLmRpZikNCg0KcHdjLnNpZy5kaWYgPC0gYWxsLnNsb3Blcy5zaWcuZGlmICU+JSANCiAgcmVuYW1lKGxpZmVfc3RhZ2UgID0gYExpZmUgU3RhZ2VgLA0KICAgICAgICAgcGVyY2VudF9jaGFuZ2UgPSBgUGVyY2VudCBDaGFuZ2VgKSAlPiUgDQogIGVtbWVhbnNfdGVzdCgNCiAgICBwZXJjZW50X2NoYW5nZSB+IGxpZmVfc3RhZ2UsIGNvdmFyaWF0ZSA9IEZUUCwNCiAgICBwLmFkanVzdC5tZXRob2QgPSAiYm9uZmVycm9uaSINCiAgICApDQpwd2Muc2lnLmRpZg0KDQpnZXRfZW1tZWFucyhwd2Muc2lnLmRpZikNCmBgYA0KDQpWaXN1YWxsaXplIHBhaXJ3aXNlIGNvbXBhcmlzb25zDQpgYGB7cn0NCiMgVmlzdWFsaXphdGlvbjogbGluZSBwbG90cyB3aXRoIHAtdmFsdWVzDQpwd2Muc2lnLmRpZiA8LSBwd2Muc2lnLmRpZiAlPiUgYWRkX3h5X3Bvc2l0aW9uKHggPSAibGlmZV9zdGFnZSIsIGZ1biA9ICJtZWFuX3NlIikNCihzbG9wZXMuc2lnLmRpZi5hbmNvdmEuZW1tZWFucy5wbG90IDwtIGdnbGluZShnZXRfZW1tZWFucyhwd2Muc2lnLmRpZiksIHggPSAibGlmZV9zdGFnZSIsIHkgPSAiZW1tZWFuIikgKw0KICBnZW9tX2Vycm9yYmFyKGFlcyh5bWluID0gY29uZi5sb3csIHltYXggPSBjb25mLmhpZ2gpLCB3aWR0aCA9IDAuMikgKyANCiAgc3RhdF9wdmFsdWVfbWFudWFsKHB3Yy5zaWcuZGlmLCBoaWRlLm5zID0gVFJVRSwgdGlwLmxlbmd0aCA9IEZBTFNFKSArDQogIGxhYnMoDQogICAgc3VidGl0bGUgPSBnZXRfdGVzdF9sYWJlbChyZXMuYW92LnNpZy5kaWYsIGRldGFpbGVkID0gVFJVRSksDQogICAgY2FwdGlvbiA9IGdldF9wd2NfbGFiZWwocHdjLnNpZy5kaWYpLA0KICAgIHggPSAiTGlmZSBTdGFnZSIsIHkgPSAiRXN0aW1hdGVkIE1hcmdpbmFsIE1lYW5zIikNCikNCmBgYA0KDQpzdGFjayBwbG90cw0KYGBge3J9DQpzbG9wZXMuc2lnLmRpZi5hbmNvdmEuc3RhY2sgPC0gZ2dhcnJhbmdlKHNsb3Blcy5zaWcuZGlmLmxpbmVhci5wbG90LCBzbG9wZXMuc2lnLmRpZi5hbmNvdmEuZW1tZWFucy5wbG90LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5jb2wgPSAxLCBucm93ICA9IDIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gIkFVVE8iLCBsZWdlbmQgPSAicmlnaHQiKQ0KDQpzbG9wZXMuc2lnLmRpZi5hbmNvdmEuc3RhY2sNCg0KZ2dzYXZlKGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9zaWdfZGlmX3Nsb3Blc19hbmNvdmFfc3RhY2sudGlmZiIsIA0KICAgICAgIHNsb3Blcy5zaWcuZGlmLmFuY292YS5zdGFjaywgDQogICAgICAgZHBpID0gMzAwLCB3aWR0aCA9IDIwMCwgaGVpZ2h0ID0gMTUwLCB1bml0cyA9ICJtbSIpDQpgYGANCg0KIyMgTXVsdGktcGFuZWwgcGxvdCBmb3IgbG0gYW5kIGFuY292YQ0KYGBge3J9DQoNCmZpZzMgPC0gZ2dhcnJhbmdlKA0KICBzbG9wZXMuYWxsLnBsb3QucGVyY2VudC5hZ2UuY2xhc3MsDQogIHNsb3Blcy5saW5lYXIucGxvdCwgDQogIHNsb3Blcy5hbGwucGxvdC5wZXJjZW50Lmp1dmVuaWxlLA0KICBzbG9wZXMuYWxsLnBsb3QucGVyY2VudC5hZHVsdCwNCiAgbmNvbCA9IDIsDQogIG5yb3cgPSAyLA0KICAjY29tbW9uLmxlZ2VuZCA9IFQsDQogIGxlZ2VuZCA9ICJyaWdodCIsDQogIGxhYmVscyA9ICJBVVRPIiwNCiAgbGFiZWwueCA9IDAuMDMNCikNCg0KZmlnMw0KDQpnZ3NhdmUoDQogIGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9maWczLnRpZmYiLA0KICBmaWczLA0KICBkcGkgPSAzMDAsDQogIHdpZHRoID0gMjUwLA0KICBoZWlnaHQgPSAyMDAsDQogIHVuaXRzID0gIm1tIg0KKQ0KDQoNCmBgYA0KDQojIEFsbCBzcGVjaWVzIA0KIyMgTW9kZWwNCg0KRmlsdGVyIGZvciB0YXJnZXQgc3BlY2llcyBmcm9tIGFnZSBncm91cHMgdGhhdCBoYWQgZW5vdWdoIGRhdGEgZm9yIGEgQlJULCByZW1vdmUgTkEgcm93cw0KYGBge3J9DQpncm93Lm1lcmdlLnRhcmdldC5zcHAgPC0gYWxsLmdyb3cubWVyZ2UgJT4lIA0KICBmaWx0ZXIoc3BlY2llcyAlaW4lIGMoImJsYWNrX2NyYXBwaWUiLCAiYmx1ZWdpbGwiLCAiYnJvd25fdHJvdXQiLCAiY2lzY28iLCAiY29tbW9uX3doaXRlX3N1Y2tlciIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgImxhcmdlbW91dGhfYmFzcyIsICJub3J0aGVybl9waWtlIiwgInB1bXBraW5zZWVkX3N1bmZpc2giLCAicmFpbmJvd190cm91dCIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgInJvY2tfYmFzcyIsICJzbWFsbG1vdXRoX2Jhc3MiLCAid2FsbGV5ZSIsICJ5ZWxsb3dfcGVyY2giKSkgJT4lIA0KICBmaWx0ZXIoc3BlY2llcyA9PSAiYmxhY2tfY3JhcHBpZSIgJiAhYWdlX2dyb3VwICVpbiUgYygxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIpIHwNCiAgICAgICAgc3BlY2llcyA9PSAiYmx1ZWdpbGwiICYgIWFnZV9ncm91cCAlaW4lIGMoMTIsIDEzLCAxOCkgfA0KICAgICAgICBzcGVjaWVzID09ICJicm93bl90cm91dCIgJiBhZ2VfZ3JvdXAgJWluJSBjKDEsIDIsIDMsIDQsIDUpIHwNCiAgICAgICAgc3BlY2llcyA9PSAiY2lzY28iICYgYWdlX2dyb3VwICVpbiUgYygyLCAzLCA0LCA1LCA2LCA3KSB8DQogICAgICAgIHNwZWNpZXMgPT0gImNvbW1vbl93aGl0ZV9zdWNrZXIiICYgYWdlX2dyb3VwICVpbiUgYygxLCAyLCAzLCA0LCA1KSB8DQogICAgICAgIHNwZWNpZXMgPT0gImxhcmdlbW91dGhfYmFzcyIgJiAhYWdlX2dyb3VwICVpbiUgYygxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMikgfA0KICAgICAgICBzcGVjaWVzID09ICJub3J0aGVybl9waWtlIiAmICFhZ2VfZ3JvdXAgJWluJSBjKDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIpIHwNCiAgICAgICAgc3BlY2llcyA9PSAicHVtcGtpbnNlZWRfc3VuZmlzaCIgJiBhZ2VfZ3JvdXAgJWluJSBjKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwKSB8DQogICAgICAgIHNwZWNpZXMgPT0gInJhaW5ib3dfdHJvdXQiICYgYWdlX2dyb3VwICVpbiUgYygxLCAyLCAzLCA0KSB8DQogICAgICAgIHNwZWNpZXMgPT0gInJvY2tfYmFzcyIgJiBhZ2VfZ3JvdXAgJWluJSBjKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSkgfA0KICAgICAgICBzcGVjaWVzID09ICJzbWFsbG1vdXRoX2Jhc3MiICYgIGFnZV9ncm91cCAlaW4lIGMoMDoxMCkgfA0KICAgICAgICBzcGVjaWVzID09ICJ3YWxsZXllIiAmIGFnZV9ncm91cCAlaW4lIGMoMDoxMikgfA0KICAgICAgICBzcGVjaWVzID09ICJ5ZWxsb3dfcGVyY2giICYgYWdlX2dyb3VwICVpbiUgYygwOjExKQ0KICApICU+JSANCiAgZmlsdGVyKCFpcy5uYShsZW5ndGhfbWVhbl9tbSkpICU+JSANCiAgbGVmdF9qb2luKGFsbC5zbG9wZXMgJT4lIA0KICAgICAgICAgICAgICBzZWxlY3Qoc3BlY2llcywgQWdlLCBGVFAsIGBUaGVybWFsIEd1aWxkYCwgbWVhbl9sZW5ndGgsIENUbWF4LCBgTGlmZSBTdGFnZWApICU+JSANCiAgICAgICAgICAgICAgcmVuYW1lKGFnZV9ncm91cCA9IEFnZSwgbGlmZV9zdGFnZSA9IGBMaWZlIFN0YWdlYCksDQogICAgICAgICAgICBieSA9IGMoInNwZWNpZXMiLCAiYWdlX2dyb3VwIikpICU+JSANCiAgbXV0YXRlKHNwZWNpZXNfYWdlX2dyb3VwID0gKQ0KYGBgDQoNCiMjDQoNCmBgYHtyfQ0KI2xpbmVhciBtb2RlbA0KYWxsLnNwcC5sbSA8LSBsbShsZW5ndGhfbWVhbl9tbSB+IGJlZ2luX2RhdGVfeWVhciphZ2VfZ3JvdXAqc3BlY2llcyArIGxvZ19tYXhfZGVwdGggKyBsb2dhcmVhICsgZG95LCANCiAgICAgICAgICAgICAgICAgZGF0YSA9IGdyb3cubWVyZ2UudGFyZ2V0LnNwcCkNCnN1bW1hcnkoYWxsLnNwcC5sbSkNCg0Kb3B0aW9ucyhuYS5hY3Rpb24gPSAibmEub21pdCIpDQpkZCA8LSBkcmVkZ2UoYWxsLnNwcC5sbSkNCg0KI2NhbGN1bGF0ZSBhbmQgaW50ZXJwcmV0IGVmZmVjdCBzaXplcw0KZXRhX3NxdWFyZWQoYWxsLnNwcC5sbSkNCiNpbnRlcnByZXQoZXRhX3NxdWFyZWQoYWxsLnNwcC5sbSksIHJ1bGVzID0gImNvaGVuMTk5MiIpDQoNCiNjYWxjdWxhdGUgQUlDIHNjb3JlDQpBSUMoYWxsLnNwcC5sbSkNCg0KI2V4YW1pbmUgbW9kZWwgZml0DQp0ZXN0RGlzcGVyc2lvbihhbGwuc3BwLmxtKQ0KDQpzaW11bGF0aW9uLm91dHB1dCA8LSBzaW11bGF0ZVJlc2lkdWFscyhmaXR0ZWRNb2RlbCA9IGFsbC5zcHAubG0pDQoNCnJlc2lkdWFscyhhbGwuc3BwLmxtKQ0KcmVzaWR1YWxzKGFsbC5zcHAubG0sIHF1YW50aWxlRnVuY3Rpb24gPSBxbm9ybSkNCg0KcGxvdChhbGwuc3BwLmxtKQ0KYGBgDQoNCiMjIFBvc3QtaG9jIGNvbXBhcmlzb25zDQpgYGB7cn0NCmFsbC5zcHAuZW1tIDwtIGVtbWVhbnMoYWxsLnNwcC5sbSwgfiBiZWdpbl9kYXRlX3llYXIqYWdlX2dyb3VwKnNwZWNpZXMpDQpwYWlycyhhbGwuc3BwLmVtbSwgYnkgPSBjKCJzcGVjaWVzIiwgImFnZV9ncm91cCIsICJiZWdpbl9kYXRlX3llYXIiKSkNCnRlc3QocGFpcnMoYWxsLnNwcC5lbW0sIGJ5ID0gYygic3BlY2llcyIsICJhZ2VfZ3JvdXAiLCAiYmVnaW5fZGF0ZV95ZWFyIikpLCBieSA9IE5VTEwsIGFkanVzdCA9ICJtdnQiKQ0KDQojZXhwb3J0IHRhYmxlcw0KI2ludGVycHJldChldGFfc3F1YXJlZChhbGwuc3BwLmxtKSwgcnVsZXMgPSAiY29oZW4xOTkyIikgJT4lDQogIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL2FsbF9zcHBfZXRhX3NxdWFyZWQuY3N2IikNCg0KI3Nsb3BlIGNvbnRyYXN0cw0KIyBPYnRhaW4gc2xvcGUgZXN0aW1hdGVzDQphbGwuc3BwLnNsb3BlcyA8LSBlbXRyZW5kcyhhbGwuc3BwLmxtLCB+YWdlX2dyb3VwKnNwZWNpZXMsIHZhciA9ICJiZWdpbl9kYXRlX3llYXIiKQ0KIyBDb21wYXJlIGVzdGltYXRlZCBzbG9wZXMgdG8gMA0KYWxsLnNwcC5zbG9wZS5jb250cmFzdHMgPC0gdGVzdChhbGwuc3BwLnNsb3BlcykgJT4lIA0KICByZW5hbWUoQWdlID0gYWdlX2dyb3VwKSAlPiUgDQogIGZpbHRlcighaXMubmEoYHAudmFsdWVgKSkNCg0KYWxsLnNwcC5zbG9wZS5jb250cmFzdHMgJT4lDQogIHdyaXRlLmNzdihmaWxlID0gIk91dHB1dHMvVGFibGVzL2FsbF9zcHBfZW1tZWFucy5jc3YiKQ0KYGBgDQoNCiMjIyBQbG90IHJhdyBkYXRhDQpgYGB7cn0NCihhbGwuc3BwLmxlbmd0aC55ZWFyLnBsb3QgPC0gZ2dwbG90KGRhdGEgPSBncm93Lm1lcmdlLnRhcmdldC5zcHAgJT4lIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0YXRlKEFnZSA9IGFzLmZhY3RvcihhZ2VfZ3JvdXApKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzKHggPSBiZWdpbl9kYXRlX3llYXIsIHkgPSBsZW5ndGhfbWVhbl9tbSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gQWdlLCBmaWxsID0gQWdlLCBncm91cCA9IEFnZSkpKw0KICAgIGZhY2V0X3dyYXAofnNwZWNpZXMsIHNjYWxlcyA9ICJmcmVlIikrDQogICAgI2dlb21fcG9pbnQoKSsNCiAgICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iKSsNCiAgICBzdGF0X3BvbHlfZXEodXNlX2xhYmVsKCJlcSIpKSsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoKSsNCiAgICBzY2FsZV9maWxsX3ZpcmlkaXNfZCgpKw0KICAgIGxhYnMoeSA9ICJMZW5ndGggKG1tKSIsIHggPSAiWWVhciIpKw0KICAgIHRoZW1lX2J3KCkNCikNCg0KYGBgDQojIyMgTWFyZ2luYWwgRWZmZWN0cw0KYGBge3J9DQpyZXN1bHQgPC0gcHJlZGljdF9yZXNwb25zZShhbGwuc3BwLmxtLCBjKCJiZWdpbl9kYXRlX3llYXIiLCAiYWdlX2dyb3VwIiwgInNwZWNpZXMiKSkNCg0KIyBwbG90KHJlc3VsdCkNCiMgdGVzdF9wcmVkaWN0aW9ucyhyZXN1bHQpICU+JSANCiMgICB3cml0ZS5jc3YoZmlsZSA9ICJPdXRwdXRzL1RhYmxlcy9hbGwuc3BwX3BhaXJ3aXNlX2xlbmd0aF90aW1lX3Nsb3Blcy5jc3YiLCByb3cubmFtZXMgPSBGKQ0KDQooYWxsLnNwcC5tYXJnaW5hbC5wbG90IDwtIGdncHJlZGljdChhbGwuc3BwLmxtLCB0ZXJtcyA9IGMoImJlZ2luX2RhdGVfeWVhciIsICJhZ2VfZ3JvdXAiLCAic3BlY2llcyIpKSAlPiUgIA0KICAgIHBsb3QoKSsNCiAgICAjc3RhdF9wb2x5X2VxKHVzZV9sYWJlbCgiZXEiKSkrDQogICAgc3RhdF9yZWdsaW5lX2VxdWF0aW9uKCkrDQogICAgc3RhdF9wb2x5X2xpbmUoKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA3NyArIDAuMDd4IiwgeCA9IDIwMDAsIHkgPSAyMjQpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDIxICsgMC4wOTN4IiwgeCA9IDIwMDAsIHkgPSAyMTIpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IC02NCArIDAuMTN4IiwgeCA9IDIwMDAsIHkgPSAxOTkpKw0KICAgICMgYW5ub3RhdGUoZ2VvbSA9ICJ0ZXh0IiwgbGFiZWwgPSAieSA9IDIzMCAtIDAuMDI4eCIsIHggPSAyMDAwLCB5ID0gMTgyKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA2MTAgLSAwLjIzeCIsIHggPSAyMDAwLCB5ID0gMTYwKSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSA5MjAgLSAwLjM5eCIsIHggPSAyMDAwLCB5ID0gMTM3KSsNCiAgICAjIGFubm90YXRlKGdlb20gPSAidGV4dCIsIGxhYmVsID0gInkgPSAxMjAwIC0gMC41NXgiLCB4ID0gMjAwMCwgeSA9IDExMCkrDQogICAgIyBhbm5vdGF0ZShnZW9tID0gInRleHQiLCBsYWJlbCA9ICJ5ID0gMTcwMCAtIDAuODN4IiwgeCA9IDIwMDAsIHkgPSA4MCkrDQogICAgc2NhbGVfY29sb3JfdmlyaWRpc19kKCkrDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSsNCiAgICBsYWJzKHRpdGxlID0gTlVMTCwNCiAgICAgICAgIHkgPSAiTWVhbiBMZW5ndGgtYXQtQWdlIChtbSkiLA0KICAgICAgICAgeCA9ICJZZWFyIikrDQogICAgZ3VpZGVzKGZpbGwgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiQWdlIiwgcmV2ZXJzZSA9IFQpLCBjb2xvciA9IGd1aWRlX2xlZ2VuZCh0aXRsZSA9ICJBZ2UiLCByZXZlcnNlID0gVCkpKw0KICAgIHRoZW1lX2J3KCkNCikNCg0KDQpnZ3NhdmUoZmlsZW5hbWUgPSAifi9HaXRIdWIvRUFHRVJfZ3Jvd3RoL091dHB1dHMvRmlndXJlcy9MaW5lYXIgTW9kZWxzL2FsbC5zcHBfbWFyZ2luYWxfZWZmZWN0c19wbG90LnRpZmYiLCANCiAgICAgICBhbGwuc3BwLm1hcmdpbmFsLnBsb3QsIA0KICAgICAgIGRwaSA9IDMwMCwgd2lkdGggPSAyMDAsIGhlaWdodCA9IDE1MCwgdW5pdHMgPSAibW0iKQ0KYGBgDQoNCg0KDQojIEJheWVzaWFuIG1vZGVsDQoNCkJ1aWxkaW5nIGEgc2luZ2xlIG1vZGVsIHRoYXQgaW5jbHVkZXMgYWxsIHNwZWNpZXMgdXNpbmcgc3BlY2llcyBhcyBhIGZpeGVkIGVmZmVjdA0KDQpUcm91YmxlIFNob290aW5nIA0KYGBge3J9DQpsaWJyYXJ5KGNtZHN0YW5yKQ0KaW5zdGFsbF9jbWRzdGFuKCkNCmNtZHN0YW5fcGF0aCgpDQoNCmBgYA0KDQojIyBNb2RlbCBzZXR1cCANCmBgYHtyfQ0KIyBOZXcgY29sdW1uIHRoYXQgY29tYmluZXMgYWdlX2dyb3VwIGFuZCBzcGVjaWVzDQpncm93Lm1lcmdlLnRhcmdldC5zcHAgPC0gZ3Jvdy5tZXJnZS50YXJnZXQuc3BwICU+JSANCiAgbXV0YXRlKHNwZWNpZXNfYWdlX2dyb3VwID0gaW50ZXJhY3Rpb24oc3BlY2llcywgYWdlX2dyb3VwKSkNCg0KbnJvdyhmaWx0ZXIoZ3Jvdy5tZXJnZS50YXJnZXQuc3BwLCBEYXRhX1R5cGUgPT0gIkNvbnRlbXBvcmFyeSIpKQ0KbnJvdyhmaWx0ZXIoZ3Jvdy5tZXJnZS50YXJnZXQuc3BwLCBEYXRhX1R5cGUgPT0gIkhpc3RvcmljIikpDQoNCiNNYWluIGVmZmVjdHMgYW5kIHR3by13YXkgaW50ZXJhY3Rpb25zDQojIGZvcm11bGExIDwtIGJmKA0KIyAgIGxlbmd0aF9tZWFuX21tIH4gKGJlZ2luX2RhdGVfeWVhciArIGFnZV9ncm91cCArIGxvZ19tYXhfZGVwdGggKyBsb2dhcmVhICsgZG95ICsgc3BlY2llcyleMg0KIyApDQoNCiNNb2RlbCBzdHJ1Y3R1cmUgZnJvbSBmcmVxdWVudGlzdCByZWdyZXNzaW9ucw0KZm9ybXVsYTIgPC0gYmYobGVuZ3RoX21lYW5fbW0gfiBsb2dfbWF4X2RlcHRoICsgbG9nYXJlYSArIGRveSArICgxICsgYmVnaW5fZGF0ZV95ZWFyIHwgc3BlY2llc19hZ2VfZ3JvdXApKQ0KDQojQWRkaW5nIGxha2UgYXMgYSByYW5kb20gZWZmZWN0DQojIGZvcm11bGEzIDwtIGJmKGxlbmd0aF9tZWFuX21tIH4gYmVnaW5fZGF0ZV95ZWFyKmFnZV9ncm91cCpzcGVjaWVzICsgbG9nX21heF9kZXB0aCArIGxvZ2FyZWEgKyBkb3kgKyAoMXxsYWtlbmFtZSkpDQoNCg0KDQpgYGANCg0KIyMgUnVuIG1vZGVscw0KRml0IHRoZSBtb2RlbHMNCmBgYHtyfQ0KIyBmaXQxIDwtIGJybSgNCiMgICBmb3JtdWxhID0gZm9ybXVsYTEsDQojICAgZGF0YSA9IGdyb3cubWVyZ2UudGFyZ2V0LnNwcCwNCiMgICBmYW1pbHkgPSBnYXVzc2lhbigpLCAgICAgIA0KIyAgIGNoYWlucyA9IDQsDQojICAgaXRlciA9IDIwMDAsDQojICAgY29yZXMgPSA0LA0KIyAgIGNvbnRyb2wgPSBsaXN0KGFkYXB0X2RlbHRhID0gMC45NSkNCiMgKQ0KDQpmaXQyIDwtIGJybSgNCiAgZm9ybXVsYSA9IGZvcm11bGEyLA0KICBkYXRhID0gZ3Jvdy5tZXJnZS50YXJnZXQuc3BwLA0KICBmYW1pbHkgPSBnYXVzc2lhbigpLCAgICAgIA0KICBjaGFpbnMgPSA0LA0KICBpdGVyID0gMTAwMDAwLA0KICB0aGluID0gMTAsDQogIGNvcmVzID0gNCwNCiAgY29udHJvbCA9IGxpc3QoYWRhcHRfZGVsdGEgPSAwLjkpDQopDQoNCiMgZml0MyA8LSBicm0oDQojICAgZm9ybXVsYSA9IGZvcm11bGEzLA0KIyAgIGRhdGEgPSBncm93Lm1lcmdlLnRhcmdldC5zcHAsDQojICAgZmFtaWx5ID0gZ2F1c3NpYW4oKSwgICAgICANCiMgICBjaGFpbnMgPSA0LA0KIyAgIGl0ZXIgPSAyMDAwLA0KIyAgIGNvcmVzID0gNCwNCiMgICBjb250cm9sID0gbGlzdChhZGFwdF9kZWx0YSA9IDAuOTUpDQojICkNCmBgYA0KIyMgRXhhbWluZSByZXN1bHRzDQpgYGB7cn0NCnN1bW1hcnkoZml0MikNCnBsb3QoZml0MikNCg0KcmhhdChmaXQyKQ0KDQp3cml0ZS54bHN4KA0KICBsaXN0KA0KICAgICJGaXhlZCBFZmZlY3RzIiA9IGZpeGVmKGZpdDIpLA0KICAgICJSYW5kb20gRWZmZWN0cyIgPSBhcy5kYXRhLmZyYW1lKHJhbmVmKGZpdDIpKSwNCiAgICAiQ29udmVyZ2VuY2UiID0gYXMuZGF0YS5mcmFtZShyaGF0KGZpdDIpKQ0KICApLA0KICBmaWxlID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL1RhYmxlcy9iYXllc2lhbl9tb2RlbF9vdXRwdXQueGxzeCIsDQogIHJvd05hbWVzID0gVA0KKQ0KYGBgDQoNCiMjIEV4dHJhY3QgcmFuZG9tIHNsb3Blcw0KYGBge3J9DQojVXNlIHRoaXMgY2h1bmsgaWYgeW91J3ZlIHJ1biB0aGUgbW9kZWwgYW5kIGhhdmUgaXQgc2F2ZWQgaW4geW91ciBlbnZpcm9ubWVudA0KZ3JvdXBfZWZmZWN0cyA8LSByYW5lZihmaXQyKSRzcGVjaWVzX2FnZV9ncm91cA0KaGVhZChncm91cF9lZmZlY3RzKSAjIFNob3dzIGFycmF5OiBbZ3JvdXAsIGVmZmVjdCwgc3RhdGlzdGljIChFc3RpbWF0ZSwgbG93ZXIsIHVwcGVyKV0NCg0KDQojIEdldCBwb3N0ZXJpb3IgbWVhbnMgZm9yIGVhY2ggZ3JvdXAncyBzbG9wZQ0Kc2xvcGVzIDwtIGFzLmRhdGEuZnJhbWUoZ3JvdXBfZWZmZWN0cykgJT4lIA0KICAjbW92ZSBzcGVjaWVzX2FnZV9ncm91cCBmcm9tIHRoZSByb3cgbmFtZXMgdG8gYSBjb2x1bW4NCiAgcm93bmFtZXNfdG9fY29sdW1uKHZhciA9ICJzcGVjaWVzX2FnZV9ncm91cCIpICU+JSANCiAgI3JlbmFtZSBjb2x1bW5zIHRvIGZhY2lsaXRhdGUgcGxvdHRpbmcNCiAgcmVuYW1lKHNsb3BlX2JheWVzID0gIkVzdGltYXRlLmJlZ2luX2RhdGVfeWVhciIsDQogICAgICAgICBsb3dlcl9iYXllcyA9ICJRMi41LmJlZ2luX2RhdGVfeWVhciIsDQogICAgICAgICB1cHBlcl9iYXllcyA9ICJROTcuNS5iZWdpbl9kYXRlX3llYXIiKSAlPiUgDQogICNzcGxpdCBzcGVjaWVzX2FnZV9ncm91cCBpbnRvIHNwZWNpZXMgYW5kIGFnZV9ncm91cCBmb3IgcGxvdHRpbmcNCiAgc2VwYXJhdGUoc3BlY2llc19hZ2VfZ3JvdXAsIGludG8gPSBjKCJzcGVjaWVzIiwgImFnZV9ncm91cCIpLCBzZXAgPSAiXFwuIikgJT4lIA0KICAjZml4IGFnZV9ncm91cCBvcmRlciB0byBiZSBudW1lcmljDQogIG11dGF0ZShhZ2VfZ3JvdXAgPSBmYWN0b3IoYWdlX2dyb3VwLCBsZXZlbHMgPSBzb3J0KGFzLm51bWVyaWModW5pcXVlKGFnZV9ncm91cCkpKSkpICU+JSANCiAgI2NoYW5nZSBzcGVjaWVzIG5hbWVzIHRvIHJlbW92ZSBfDQogIG11dGF0ZShzcGVjaWVzID0gc3BlY2llcyAlPiUgDQogICAgICAgICAgIHN0cl9yZXBsYWNlX2FsbCgiXyIsICIgIikgJT4lIA0KICAgICAgICAgICBzdHJfdG9fdGl0bGUoKSkgJT4lIA0KICAjcmVuYW1lIGFnZV9ncm91cCB0byBtYWtlIHBsb3QgY2xlYW5lcg0KICByZW5hbWUoQWdlID0gYWdlX2dyb3VwLCBTcGVjaWVzID0gc3BlY2llcykgJT4lIA0KICAjam9pbiB3aXRoIGZyZXF1ZW50aXN0IG91dHB1dA0KICBsZWZ0X2pvaW4oYWxsLnNsb3BlcyAlPiUgDQogICAgICAgICAgICBtdXRhdGUoU3BlY2llcyA9IGlmX2Vsc2UoU3BlY2llcyA9PSAiV2hpdGUgU3Vja2VyIiwgIkNvbW1vbiBXaGl0ZSBTdWNrZXIiLCBTcGVjaWVzKSksIA0KICAgICAgICAgICAgYnkgPSBjKCJTcGVjaWVzIiwgIkFnZSIpKSAlPiUgDQogICNyZW9yZGVyIFNwZWNpZXMgYnkgRlRQIGZvciBwbG90dGluZw0KICBtdXRhdGUoU3BlY2llcyA9IGZjdF9yZW9yZGVyKFNwZWNpZXMsIEZUUCkpICU+JSANCiAgI2NyZWF0ZSBwZXJjZW50IGNoYW5nZSBjb2x1bW4gZm9yIEJheWVzIHNsb3Blcw0KICBtdXRhdGUoYEJheWVzIFBlcmNlbnQgQ2hhbmdlYCA9IHNsb3BlX2JheWVzL21lYW5fbGVuZ3RoKjEwMCwNCiAgICAgICAgIGJheWVzX3BjX2xvd2VyID0gbG93ZXJfYmF5ZXMvbWVhbl9sZW5ndGgqMTAwLA0KICAgICAgICAgYmF5ZXNfcGNfdXBwZXIgPSB1cHBlcl9iYXllcy9tZWFuX2xlbmd0aCoxMDAsDQogICNjcmVhdGUgY29sdW1uIGZvciBpZiBjcmVkaWJpbHR5IGludGVydmFsIG92ZXJsYXBzIHdpdGggMA0KICAgICAgICAgYFN0YXRpc3RpY2FsbHkgRGlmZmVyZW50YCA9IGlmX2Vsc2UobG93ZXJfYmF5ZXMgPiAwIHwgdXBwZXJfYmF5ZXMgPCAwLCAiRGlmZmVyZW50IGZyb20gMCIsICJPdmVybGFwcyAwIikNCiAgKQ0KYGBgDQoNCmBgYHtyfQ0KI1VzZSB0aGlzIGNodW5rIGlmIHlvdSBkb24ndCBoYXZlIHRoZSBtb2RlbCBzYXZlZCBpbiB5b3VyIGVudmlyb25tZW50IGFuZCBhcmUgcmVhZGluZyBiYWNrIGluIHRoZSBvdXRwdXQgdGhhdCB3YXMgcHJldmlvdXNseSB3cml0dGVuIG91dCB0byBleGNlbA0KZ3JvdXBfZWZmZWN0cyA8LSByZWFkLnhsc3goIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL1RhYmxlcy9iYXllc2lhbl9tb2RlbF9vdXRwdXQueGxzeCIsIDIpDQpoZWFkKGdyb3VwX2VmZmVjdHMpIA0KDQoNCiMgR2V0IHBvc3RlcmlvciBtZWFucyBmb3IgZWFjaCBncm91cCdzIHNsb3BlDQpzbG9wZXMgPC0gYXMuZGF0YS5mcmFtZShncm91cF9lZmZlY3RzKSAlPiUgDQogIHJlbmFtZV93aXRoKH5zdHJfcmVtb3ZlKC54LCAic3BlY2llc19hZ2VfZ3JvdXAuIikpICU+JSANCiAgI3JlbmFtZSBjb2x1bW5zIHRvIGZhY2lsaXRhdGUgcGxvdHRpbmcNCiAgcmVuYW1lKHNwZWNpZXNfYWdlX2dyb3VwID0gWDEsDQogICAgICAgICBzbG9wZV9iYXllcyA9IEVzdGltYXRlLmJlZ2luX2RhdGVfeWVhciwNCiAgICAgICAgIGxvd2VyX2JheWVzID0gUTIuNS5iZWdpbl9kYXRlX3llYXIsDQogICAgICAgICB1cHBlcl9iYXllcyA9IFE5Ny41LmJlZ2luX2RhdGVfeWVhcikgJT4lIA0KICAjc3BsaXQgc3BlY2llc19hZ2VfZ3JvdXAgaW50byBzcGVjaWVzIGFuZCBhZ2VfZ3JvdXAgZm9yIHBsb3R0aW5nDQogIHNlcGFyYXRlKHNwZWNpZXNfYWdlX2dyb3VwLCBpbnRvID0gYygic3BlY2llcyIsICJhZ2VfZ3JvdXAiKSwgc2VwID0gIlxcLiIpICU+JSANCiAgI2ZpeCBhZ2VfZ3JvdXAgb3JkZXIgdG8gYmUgbnVtZXJpYw0KICBtdXRhdGUoYWdlX2dyb3VwID0gZmFjdG9yKGFnZV9ncm91cCwgbGV2ZWxzID0gc29ydChhcy5udW1lcmljKHVuaXF1ZShhZ2VfZ3JvdXApKSkpKSAlPiUgDQogICNjaGFuZ2Ugc3BlY2llcyBuYW1lcyB0byByZW1vdmUgXw0KICBtdXRhdGUoc3BlY2llcyA9IHNwZWNpZXMgJT4lIA0KICAgICAgICAgICBzdHJfcmVwbGFjZV9hbGwoIl8iLCAiICIpICU+JSANCiAgICAgICAgICAgc3RyX3RvX3RpdGxlKCkpICU+JSANCiAgI3JlbmFtZSBhZ2VfZ3JvdXAgdG8gbWFrZSBwbG90IGNsZWFuZXINCiAgcmVuYW1lKEFnZSA9IGFnZV9ncm91cCwgU3BlY2llcyA9IHNwZWNpZXMpICU+JSANCiAgI2pvaW4gd2l0aCBmcmVxdWVudGlzdCBvdXRwdXQNCiAgbGVmdF9qb2luKGFsbC5zbG9wZXMgJT4lIA0KICAgICAgICAgICAgbXV0YXRlKFNwZWNpZXMgPSBpZl9lbHNlKFNwZWNpZXMgPT0gIldoaXRlIFN1Y2tlciIsICJDb21tb24gV2hpdGUgU3Vja2VyIiwgU3BlY2llcykpLCANCiAgICAgICAgICAgIGJ5ID0gYygiU3BlY2llcyIsICJBZ2UiKSkgJT4lIA0KICAjcmVvcmRlciBTcGVjaWVzIGJ5IEZUUCBmb3IgcGxvdHRpbmcNCiAgbXV0YXRlKFNwZWNpZXMgPSBmY3RfcmVvcmRlcihTcGVjaWVzLCBGVFApKSAlPiUgDQogICNjcmVhdGUgcGVyY2VudCBjaGFuZ2UgY29sdW1uIGZvciBCYXllcyBzbG9wZXMNCiAgbXV0YXRlKGBCYXllcyBQZXJjZW50IENoYW5nZWAgPSBzbG9wZV9iYXllcy9tZWFuX2xlbmd0aCoxMDAsDQogICAgICAgICBiYXllc19wY19sb3dlciA9IGxvd2VyX2JheWVzL21lYW5fbGVuZ3RoKjEwMCwNCiAgICAgICAgIGJheWVzX3BjX3VwcGVyID0gdXBwZXJfYmF5ZXMvbWVhbl9sZW5ndGgqMTAwLA0KICAjY3JlYXRlIGNvbHVtbiBmb3IgaWYgY3JlZGliaWx0eSBpbnRlcnZhbCBvdmVybGFwcyB3aXRoIDANCiAgICAgICAgIGBTdGF0aXN0aWNhbGx5IERpZmZlcmVudGAgPSBpZl9lbHNlKGxvd2VyX2JheWVzID4gMCB8IHVwcGVyX2JheWVzIDwgMCwgIkRpZmZlcmVudCBmcm9tIDAiLCAiT3ZlcmxhcHMgMCIpDQogICkNCg0KYGBgDQoNCkV4cG9ydCBvdXRwdXQgYWZ0ZXIgam9pbmluZyB3aXRoIGZyZXF1ZW50aXN0IG91dHB1dA0KYGBge3J9DQp3cml0ZS5jc3Yoc2xvcGVzLCAifi9HaXRIdWIvRUFHRVJfZ3Jvd3RoL091dHB1dHMvVGFibGVzL2JheWVzX2FsbF9zbG9wZXMuY3N2Iiwgcm93Lm5hbWVzID0gRikNCmBgYA0KDQpTdW1tYXJpemUgYnkgc3BlY2llcyBsaWZlIHN0YWdlDQpgYGB7cn0NCnNsb3Blcy5zcGVjaWVzLmxpZmUuc3RhZ2UgPC0gc2xvcGVzICU+JSANCiAgZ3JvdXBfYnkoU3BlY2llcywgYExpZmUgU3RhZ2VgKSAlPiUgDQogIHN1bW1hcml6ZShtZWFuX3Nsb3BlID0gbWVhbihzbG9wZV9iYXllcyksIHNkX3Nsb3BlID0gc2Qoc2xvcGVfYmF5ZXMpLA0KICAgICAgICAgICAgbWVhbl9wYyA9IG1lYW4oYEJheWVzIFBlcmNlbnQgQ2hhbmdlYCksIHNkX3BjICA9IHNkKGBCYXllcyBQZXJjZW50IENoYW5nZWApKSAlPiUgDQogIHBpdm90X3dpZGVyKG5hbWVzX2Zyb20gPSBgTGlmZSBTdGFnZWAsIA0KICAgICAgICAgICAgICB2YWx1ZXNfZnJvbSA9IGMobWVhbl9zbG9wZSwgc2Rfc2xvcGUsIG1lYW5fcGMsIHNkX3BjKSkgJT4lIA0KICBzZWxlY3QoU3BlY2llcywgY29udGFpbnMoIkp1dmVuaWxlIiksIGNvbnRhaW5zKCJBZHVsdCIpKQ0KDQpzbG9wZXMuYWdlIDwtIHNsb3BlcyAlPiUgDQogIGdyb3VwX2J5KEFnZSkgJT4lIA0KICBzdW1tYXJpemUobWVhbl9zbG9wZSA9IG1lYW4oc2xvcGVfYmF5ZXMpLCBzZF9zbG9wZSA9IHNkKHNsb3BlX2JheWVzKSwNCiAgICAgICAgICAgIG1lYW5fcGMgPSBtZWFuKGBCYXllcyBQZXJjZW50IENoYW5nZWApLCBzZF9wYyAgPSBzZChgQmF5ZXMgUGVyY2VudCBDaGFuZ2VgKSkgDQpgYGANCg0KDQojIyBDdXN0b20gcGxvdHMNCiMjIyBQZXJjZW50IGNoYW5nZSBieSBhZ2UgY2xhc3MgZmFjZXQgYnkgc3BlY2llcw0KYGBge3J9DQoNCnRoZXJtYWwuZ3VpbGQuY29sb3JzIDwtIGMoIiM0NjYyRDdGRiIsICIjMUFFNEI2RkYiLCAiI0NCMkEwNEZGIikNCg0KKGZpdDIuc3BlY2llcy5hZ2UuZ3JvdXBzLnBsb3QgPC0gZ2dwbG90KHNsb3BlcywgYWVzKHggPSBBZ2UsIHkgPSBgQmF5ZXMgUGVyY2VudCBDaGFuZ2VgLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IGBUaGVybWFsIEd1aWxkYCwgZmlsbCA9IGBTdGF0aXN0aWNhbGx5IERpZmZlcmVudGAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUgPSBgU3RhdGlzdGljYWxseSBEaWZmZXJlbnRgKSkgKw0KICBmYWNldF93cmFwKH5TcGVjaWVzKSsNCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gMCwgY29sb3IgPSAicmVkIiwgbGluZXR5cGUgPSAiZGFzaGVkIikrDQogIGdlb21fcG9pbnQocG9zaXRpb249cG9zaXRpb25fZG9kZ2Uod2lkdGg9MC41KSwgc2l6ZT0wLjUpICsNCiAgZ2VvbV9lcnJvcmJhcihhZXMoeW1pbj1iYXllc19wY19sb3dlciwgeW1heD1iYXllc19wY191cHBlciksDQogICAgICAgICAgICAgICAgd2lkdGg9MC4yLCBwb3NpdGlvbj1wb3NpdGlvbl9kb2RnZSh3aWR0aD0wLjUpLCBhbHBoYSA9IDAuNSkgKw0KICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gdGhlcm1hbC5ndWlsZC5jb2xvcnMpKw0KICBzY2FsZV9zaGFwZV9tYW51YWwodmFsdWVzID0gYygxOSwgMikpKw0KICBsYWJzKA0KICAgIHkgPSAiQW5udWFsIHBlcmNlbnQgY2hhbmdlIHJlbGF0aXZlIHRvIG1lYW4gbGVuZ3RoIChtbS95cikiDQogICkgKw0KICB0aGVtZV9idygpKw0KICB0aGVtZShzdHJpcC50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSA4KSkNCikNCg0KZ2dzYXZlKA0KICBnZ3NhdmUoZmlsZW5hbWUgPSAifi9HaXRIdWIvRUFHRVJfZ3Jvd3RoL091dHB1dHMvRmlndXJlcy9MaW5lYXIgTW9kZWxzL2JheWVzX2FsbF9zbG9wZXNfcGVyY2VudF9hZ2VfY2xhc3Nfc3BwX2ZhY2V0LnRpZmYiLCANCiAgICAgICBmaXQyLnNwZWNpZXMuYWdlLmdyb3Vwcy5wbG90LCANCiAgICAgICBkcGkgPSAzMDAsIHdpZHRoID0gMjAwLCBoZWlnaHQgPSAxNTAsIHVuaXRzID0gIm1tIikNCikNCmBgYA0KDQpTcGVjaWVzIG9uIHgtYXhpcyB3aXRoIGFnZSBsYWJlbHMNCmBgYHtyfQ0KYmF5ZXMuYWxsLnNsb3Blcy5wYy5DSSA8LSBzbG9wZXMgJT4lDQogIGdyb3VwX2J5KFNwZWNpZXMpICU+JQ0KICBzdW1tYXJpemUoDQogICAgbWVhbiA9IG1lYW4oYFBlcmNlbnQgQ2hhbmdlYCksDQogICAgc2QgPSBzZChgUGVyY2VudCBDaGFuZ2VgKSwNCiAgICBuID0gbigpLA0KICAgIHNlID0gc2QgLyBzcXJ0KG4pLA0KICAgIGNpX2xvd2VyID0gbWVhbiAtIHF0KDAuOTc1LCBuIC0gMSkgKiBzZSwNCiAgICBjaV91cHBlciA9IG1lYW4gKyBxdCgwLjk3NSwgbiAtIDEpICogc2UNCiAgKQ0KDQooDQogIGJheWVzLnNsb3Blcy5hbGwucGxvdC5wZXJjZW50IDwtIGdncGxvdCgpICsNCiAgICBnZW9tX2hsaW5lKA0KICAgICAgeWludGVyY2VwdCA9IDAsDQogICAgICBjb2xvciA9ICJyZWQiLA0KICAgICAgbGluZXR5cGUgPSAiZGFzaGVkIg0KICAgICkgKw0KICAgIGdlb21fZXJyb3JiYXIoZGF0YSA9IGJheWVzLmFsbC5zbG9wZXMucGMuQ0ksDQogICAgICAgICAgICAgICAgICBhZXMoeCA9IFNwZWNpZXMsIHltaW4gPSBjaV9sb3dlciwgeW1heCA9IGNpX3VwcGVyKSwNCiAgICAgICAgICAgICAgICAgIHdpZHRoID0gMC4yKSArDQogICAgZ2VvbV9wb2ludChkYXRhID0gYWxsLnNsb3Blcy5wYy5DSSwgYWVzKHggPSBTcGVjaWVzLCB5ID0gbWVhbiksIHNpemUgPSAzKSArDQogICAgZ2VvbV9wb2ludCgNCiAgICAgIGRhdGEgPSBzbG9wZXMgLA0KICAgICAgYWVzKA0KICAgICAgICB4ID0gU3BlY2llcywNCiAgICAgICAgeSA9IGBQZXJjZW50IENoYW5nZWAsDQogICAgICAgIGNvbG9yID0gYFRoZXJtYWwgR3VpbGRgLA0KICAgICAgICBmaWxsID0gYFRoZXJtYWwgR3VpbGRgLA0KICAgICAgICBzaGFwZSA9IGBTdGF0aXN0aWNhbGx5IERpZmZlcmVudGAsDQogICAgICAgIGdyb3VwID0gU3BlY2llcw0KICAgICAgKSwNCiAgICAgIHNpemUgPSAyDQogICAgKSArDQogICAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IHRoZXJtYWwuZ3VpbGQuY29sb3JzKSArDQogICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gdGhlcm1hbC5ndWlsZC5jb2xvcnMpICsNCiAgICBzY2FsZV9zaGFwZV9tYW51YWwodmFsdWVzID0gYygyLCAxNikpICsNCiAgICBnZW9tX3RleHRfcmVwZWwoZGF0YSA9IHNsb3BlcywNCiAgICAgIGFlcyh4ID0gU3BlY2llcywgeSA9IGBQZXJjZW50IENoYW5nZWAsIGxhYmVsID0gQWdlKSwNCiAgICAgIHNob3cubGVnZW5kID0gRiwNCiAgICAgIG1heC5vdmVybGFwcyA9IDEwMCwNCiAgICAgIG1heC5pdGVyID0gMTAwMDAwDQogICAgKSArDQogICAgbGFicyh5ID0gIkFubnVhbCBQZXJjZW50IENoYW5nZSBpbiBMZW5ndGgtYXQtQWdlIiwgeCA9IE5VTEwpICsNCiAgICB0aGVtZV9idygpKw0KICAgIHRoZW1lKA0KICAgICAgI3BhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJncmF5IiksDQogICAgICAsDQogICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dCgNCiAgICAgICAgYW5nbGUgPSA0NSwNCiAgICAgICAgaGp1c3QgPSAxLA0KICAgICAgICBzaXplID0gMTINCiAgICAgICksDQogICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTApLA0KICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMikNCiAgICApDQopDQoNCmdnc2F2ZShmaWxlbmFtZSA9ICJ+L0dpdEh1Yi9FQUdFUl9ncm93dGgvT3V0cHV0cy9GaWd1cmVzL0xpbmVhciBNb2RlbHMvYmF5ZXNfc2xvcGVzX3BlcmNlbnRfdGhlcm1hbC50aWZmIiwgDQogICAgICAgYmF5ZXMuc2xvcGVzLmFsbC5wbG90LnBlcmNlbnQsIA0KICAgICAgIGRwaSA9IDMwMCwgd2lkdGggPSAyMDAsIGhlaWdodCA9IDE1MCwgdW5pdHMgPSAibW0iKQ0KYGBgDQoNCg0KIyMjIFBsb3QgYnkgc3BlY2llcyBubyBmYWNldA0KYGBge3J9DQpiYXllcy5hbGwuc2xvcGVzLkNJIDwtIHNsb3BlcyAlPiUNCiAgZ3JvdXBfYnkoU3BlY2llcykgJT4lDQogIHN1bW1hcml6ZSgNCiAgICBtZWFuID0gbWVhbihzbG9wZV9iYXllcyksDQogICAgc2QgPSBzZChzbG9wZV9iYXllcyksDQogICAgbiA9IG4oKSwNCiAgICBzZSA9IHNkIC8gc3FydChuKSwNCiAgICBjaV9sb3dlciA9IG1lYW4gLSBxdCgwLjk3NSwgbiAtIDEpICogc2UsDQogICAgY2lfdXBwZXIgPSBtZWFuICsgcXQoMC45NzUsIG4gLSAxKSAqIHNlDQogICkNCg0KKA0KICBiYXllcy5zbG9wZXMuYWxsLnBsb3QgPC0gZ2dwbG90KCkgKw0KICAgIGdlb21faGxpbmUoDQogICAgICB5aW50ZXJjZXB0ID0gMCwNCiAgICAgIGNvbG9yID0gInJlZCIsDQogICAgICBsaW5ldHlwZSA9ICJkYXNoZWQiDQogICAgKSArDQogICAgZ2VvbV9lcnJvcmJhcigNCiAgICAgIGRhdGEgPSBiYXllcy5hbGwuc2xvcGVzLkNJLA0KICAgICAgYWVzKHggPSBTcGVjaWVzLCB5bWluID0gY2lfbG93ZXIsIHltYXggPSBjaV91cHBlciksDQogICAgICB3aWR0aCA9IDAuMg0KICAgICkgKw0KICAgIGdlb21fcG9pbnQoZGF0YSA9IGJheWVzLmFsbC5zbG9wZXMuQ0ksIGFlcyh4ID0gU3BlY2llcywgeSA9IG1lYW4pLCBzaXplID0gMykgKw0KICAgIGdlb21faml0dGVyKA0KICAgICAgZGF0YSA9IHNsb3BlcywNCiAgICAgIGFlcygNCiAgICAgICAgeCA9IFNwZWNpZXMsDQogICAgICAgIHkgPSBTbG9wZSwNCiAgICAgICAgY29sb3IgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIGZpbGwgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIHNoYXBlID0gYFN0YXRpc3RpY2FsbHkgRGlmZmVyZW50YCwNCiAgICAgICAgZ3JvdXAgPSBTcGVjaWVzDQogICAgICApLA0KICAgICAgc2l6ZSA9IDIsDQogICAgICB3aWR0aCA9IDAuMg0KICAgICkgKw0KICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSB0aGVybWFsLmd1aWxkLmNvbG9ycykgKw0KICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHRoZXJtYWwuZ3VpbGQuY29sb3JzKSArDQogICAgc2NhbGVfc2hhcGVfbWFudWFsKHZhbHVlcyA9IGMoMTksIDIpKSArDQogICAgbGFicyh5ID0gIkNoYW5nZSBpbiBMZW5ndGgtYXQtQWdlIChtbS95cikiLCB4ID0gTlVMTCkgKw0KICAgIHRoZW1lX2J3KCkrDQogICAgdGhlbWUoDQogICAgICAjcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gImdyYXkiKSwNCiAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSwgc2l6ZSA9IDEyKSwNCiAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMCksDQogICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyKQ0KICAgICkNCikNCg0KZ2dzYXZlKGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9iYXllc19hbGxfc2xvcGVzX3NwZWNpZXMudGlmZiIsIA0KICAgICAgIGJheWVzLnNsb3Blcy5hbGwucGxvdCwgDQogICAgICAgZHBpID0gMzAwLCB3aWR0aCA9IDIwMCwgaGVpZ2h0ID0gMTUwLCB1bml0cyA9ICJtbSIpDQpgYGANCiMjIyBQbG90IGJ5IGFnZSBubyBmYWNldA0KYGBge3J9DQpiYXllcy5hbGwuc2xvcGVzLmFnZS5DSSA8LSBzbG9wZXMgJT4lDQogIGdyb3VwX2J5KEFnZSkgJT4lDQogIHN1bW1hcml6ZSgNCiAgICBtZWFuID0gbWVhbihgQmF5ZXMgUGVyY2VudCBDaGFuZ2VgKSwNCiAgICBzZCA9IHNkKGBCYXllcyBQZXJjZW50IENoYW5nZWApLA0KICAgIG4gPSBuKCksDQogICAgc2UgPSBzZCAvIHNxcnQobiksDQogICAgY2lfbG93ZXIgPSBtZWFuIC0gcXQoMC45NzUsIG4gLSAxKSAqIHNlLA0KICAgIGNpX3VwcGVyID0gbWVhbiArIHF0KDAuOTc1LCBuIC0gMSkgKiBzZQ0KICApDQoNCigNCiAgYmF5ZXMuc2xvcGVzLmFsbC5hZ2UucGVyY2VudC5jaGFuZ2UucGxvdCA8LSBnZ3Bsb3QoKSArDQogICAgZ2VvbV9obGluZSgNCiAgICAgIHlpbnRlcmNlcHQgPSAwLA0KICAgICAgY29sb3IgPSAicmVkIiwNCiAgICAgIGxpbmV0eXBlID0gImRhc2hlZCINCiAgICApICsNCiAgICBnZW9tX2Vycm9yYmFyKA0KICAgICAgZGF0YSA9IGJheWVzLmFsbC5zbG9wZXMuYWdlLkNJLA0KICAgICAgYWVzKHggPSBBZ2UsIHltaW4gPSBjaV9sb3dlciwgeW1heCA9IGNpX3VwcGVyKSwNCiAgICAgIHdpZHRoID0gMC4yDQogICAgKSArDQogICAgZ2VvbV9wb2ludChkYXRhID0gYmF5ZXMuYWxsLnNsb3Blcy5hZ2UuQ0ksIGFlcyh4ID0gQWdlLCB5ID0gbWVhbiksIHNpemUgPSAzKSArDQogICAgZ2VvbV9qaXR0ZXIoDQogICAgICBkYXRhID0gc2xvcGVzLA0KICAgICAgYWVzKA0KICAgICAgICB4ID0gQWdlLA0KICAgICAgICB5ID0gYEJheWVzIFBlcmNlbnQgQ2hhbmdlYCwNCiAgICAgICAgY29sb3IgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIGZpbGwgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIHNoYXBlID0gYFN0YXRpc3RpY2FsbHkgRGlmZmVyZW50YCwNCiAgICAgICAgZ3JvdXAgPSBTcGVjaWVzDQogICAgICApLA0KICAgICAgc2l6ZSA9IDIsDQogICAgICB3aWR0aCA9IDAuMg0KICAgICkgKw0KICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSB0aGVybWFsLmd1aWxkLmNvbG9ycykgKw0KICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHRoZXJtYWwuZ3VpbGQuY29sb3JzKSArDQogICAgc2NhbGVfc2hhcGVfbWFudWFsKHZhbHVlcyA9IGMoMTksIDIpKSArDQogICAgbGFicyh5ID0gIlBlcmNlbnQgQ2hhbmdlIiwgeCA9IE5VTEwpICsNCiAgICB0aGVtZV9idygpKw0KICAgIHRoZW1lKA0KICAgICAgI3BhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJncmF5IiksDQogICAgICAjYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA0NSwgaGp1c3QgPSAxLCBzaXplID0gMTIpLA0KICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwKSwNCiAgICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTIpDQogICAgKQ0KKQ0KDQpnZ3NhdmUoZmlsZW5hbWUgPSAifi9HaXRIdWIvRUFHRVJfZ3Jvd3RoL091dHB1dHMvRmlndXJlcy9MaW5lYXIgTW9kZWxzL2JheWVzX2FsbF9zbG9wZXNfYWdlX3BlcmNlbnRfY2hhbmdlLnRpZmYiLCANCiAgICAgICBiYXllcy5zbG9wZXMuYWxsLmFnZS5wZXJjZW50LmNoYW5nZS5wbG90LCANCiAgICAgICBkcGkgPSAzMDAsIHdpZHRoID0gMjAwLCBoZWlnaHQgPSAxNTAsIHVuaXRzID0gIm1tIikNCmBgYA0KDQojIyMgQnJlYWsgYWR1bHRzIGFuZCBqdXZlbmlsZXMgaW50byB0aGVpciBvd24gcGxvdHMNCkp1dmVuaWxlcw0KYGBge3J9DQpiYXllcy5hbGwuc2xvcGVzLmxpZmUuc3RhZ2UuQ0kgPC0gc2xvcGVzICU+JQ0KICAjcmVuYW1lKGBMaWZlIFN0YWdlYCA9IGxpZmVfc3RhZ2UpICU+JSANCiAgZ3JvdXBfYnkoU3BlY2llcywgYExpZmUgU3RhZ2VgKSAlPiUNCiAgc3VtbWFyaXplKA0KICAgIG1lYW4gPSBtZWFuKGBCYXllcyBQZXJjZW50IENoYW5nZWApLA0KICAgIHNkID0gc2QoYEJheWVzIFBlcmNlbnQgQ2hhbmdlYCksDQogICAgbiA9IG4oKSwNCiAgICBzZSA9IHNkIC8gc3FydChuKSwNCiAgICBjaV9sb3dlciA9IG1lYW4gLSBxdCgwLjk3NSwgbiAtIDEpICogc2UsDQogICAgY2lfdXBwZXIgPSBtZWFuICsgcXQoMC45NzUsIG4gLSAxKSAqIHNlDQogICklPiUgDQogIG11dGF0ZShgTGlmZSBTdGFnZWAgPSBmY3RfcmV2KGBMaWZlIFN0YWdlYCkpDQoNCg0KKA0KICBiYXllcy5zbG9wZXMuYWxsLnBsb3QucGVyY2VudC5qdXZlbmlsZSA8LSBnZ3Bsb3QoZGF0YSA9IGJheWVzLmFsbC5zbG9wZXMubGlmZS5zdGFnZS5DSSAlPiUgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihgTGlmZSBTdGFnZWAgPT0gIkp1dmVuaWxlIikpICsNCiAgICBnZW9tX2hsaW5lKA0KICAgICAgeWludGVyY2VwdCA9IDAsDQogICAgICBjb2xvciA9ICJyZWQiLA0KICAgICAgbGluZXR5cGUgPSAiZGFzaGVkIg0KICAgICkgKw0KICAgIGdlb21fZXJyb3JiYXIoDQogICAgICBhZXMoDQogICAgICAgIHggPSBTcGVjaWVzLA0KICAgICAgICB5bWluID0gY2lfbG93ZXIsDQogICAgICAgIHltYXggPSBjaV91cHBlciwNCiAgICAgICAgZ3JvdXAgPSBpbnRlcmFjdGlvbihgTGlmZSBTdGFnZWAsIFNwZWNpZXMpDQogICAgICApLA0KICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNCksDQogICAgICB3aWR0aCA9IDAuMg0KICAgICkgKw0KICAgIGdlb21fcG9pbnQoDQogICAgICAgICAgICAgICBhZXMoDQogICAgICAgICAgICAgICAgIHggPSBTcGVjaWVzLA0KICAgICAgICAgICAgICAgICB5ID0gbWVhbiwNCiAgICAgICAgICAgICAgICAgZ3JvdXAgPSBpbnRlcmFjdGlvbihgTGlmZSBTdGFnZWAsIFNwZWNpZXMpDQogICAgICAgICAgICAgICApLA0KICAgICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNCksDQogICAgICAgICAgICAgICBzaXplID0gMykgKw0KICAgIGdlb21faml0dGVyKA0KICAgICAgZGF0YSA9IHNsb3BlcyAlPiUNCiAgICAgICAgZmlsdGVyKGBMaWZlIFN0YWdlYCA9PSAiSnV2ZW5pbGUiKSwNCiAgICAgIGFlcygNCiAgICAgICAgeCA9IFNwZWNpZXMsDQogICAgICAgIHkgPSBgQmF5ZXMgUGVyY2VudCBDaGFuZ2VgLA0KICAgICAgICBjb2xvciA9IGBUaGVybWFsIEd1aWxkYCwNCiAgICAgICAgZmlsbCA9IGBUaGVybWFsIEd1aWxkYCwNCiAgICAgICAgc2hhcGUgPSBgU3RhdGlzdGljYWxseSBEaWZmZXJlbnRgLA0KICAgICAgICAjZ3JvdXAgPSBpbnRlcmFjdGlvbihgTGlmZSBTdGFnZWAsIFNwZWNpZXMpDQogICAgICApLA0KICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNCksDQogICAgICBzaXplID0gMg0KICAgICkgKw0KICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSB0aGVybWFsLmd1aWxkLmNvbG9ycykgKw0KICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHRoZXJtYWwuZ3VpbGQuY29sb3JzKSArDQogICAgc2NhbGVfc2hhcGVfbWFudWFsKHZhbHVlcyA9IGMoMTksIDIpKSArDQogICAgbGFicyh5ID0gIlBlcmNlbnQgQ2hhbmdlIiwgDQogICAgICAgICB4ID0gTlVMTCwNCiAgICAgICAgIHRpdGxlID0gIkp1dmVuaWxlcyIpICsNCiAgICB0aGVtZV9idygpKw0KICAgIHRoZW1lKA0KICAgICAgI3BhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJncmF5IiksDQogICAgICAsDQogICAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dCgNCiAgICAgICAgYW5nbGUgPSA0NSwNCiAgICAgICAgaGp1c3QgPSAxLA0KICAgICAgICBzaXplID0gMTINCiAgICAgICksDQogICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTApLA0KICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMikNCiAgICApDQopDQpgYGANCkFkdWx0cw0KYGBge3J9DQooDQogIGJheWVzLnNsb3Blcy5hbGwucGxvdC5wZXJjZW50LmFkdWx0IDwtIGdncGxvdChkYXRhID0gYmF5ZXMuYWxsLnNsb3Blcy5saWZlLnN0YWdlLkNJICU+JSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoYExpZmUgU3RhZ2VgID09ICJBZHVsdCIpKSArDQogICAgZ2VvbV9obGluZSgNCiAgICAgIHlpbnRlcmNlcHQgPSAwLA0KICAgICAgY29sb3IgPSAicmVkIiwNCiAgICAgIGxpbmV0eXBlID0gImRhc2hlZCINCiAgICApICsNCiAgICBnZW9tX2Vycm9yYmFyKA0KICAgICAgYWVzKA0KICAgICAgICB4ID0gU3BlY2llcywNCiAgICAgICAgeW1pbiA9IGNpX2xvd2VyLA0KICAgICAgICB5bWF4ID0gY2lfdXBwZXIsDQogICAgICAgIGdyb3VwID0gaW50ZXJhY3Rpb24oYExpZmUgU3RhZ2VgLCBTcGVjaWVzKQ0KICAgICAgKSwNCiAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAwLjQpLA0KICAgICAgd2lkdGggPSAwLjINCiAgICApICsNCiAgICBnZW9tX3BvaW50KA0KICAgICAgICAgICAgICAgYWVzKA0KICAgICAgICAgICAgICAgICB4ID0gU3BlY2llcywNCiAgICAgICAgICAgICAgICAgeSA9IG1lYW4sDQogICAgICAgICAgICAgICAgIGdyb3VwID0gaW50ZXJhY3Rpb24oYExpZmUgU3RhZ2VgLCBTcGVjaWVzKQ0KICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAwLjQpLA0KICAgICAgICAgICAgICAgc2l6ZSA9IDMpICsNCiAgICBnZW9tX2ppdHRlcigNCiAgICAgIGRhdGEgPSBzbG9wZXMgJT4lDQogICAgICAgIGZpbHRlcihgTGlmZSBTdGFnZWAgPT0gIkFkdWx0IiksDQogICAgICBhZXMoDQogICAgICAgIHggPSBTcGVjaWVzLA0KICAgICAgICB5ID0gYEJheWVzIFBlcmNlbnQgQ2hhbmdlYCwNCiAgICAgICAgY29sb3IgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIGZpbGwgPSBgVGhlcm1hbCBHdWlsZGAsDQogICAgICAgIHNoYXBlID0gYFN0YXRpc3RpY2FsbHkgRGlmZmVyZW50YCwNCiAgICAgICAgI2dyb3VwID0gaW50ZXJhY3Rpb24oYExpZmUgU3RhZ2VgLCBTcGVjaWVzKQ0KICAgICAgKSwNCiAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAwLjQpLA0KICAgICAgc2l6ZSA9IDINCiAgICApICsNCiAgICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gdGhlcm1hbC5ndWlsZC5jb2xvcnMpICsNCiAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSB0aGVybWFsLmd1aWxkLmNvbG9ycykgKw0KICAgIHNjYWxlX3NoYXBlX21hbnVhbCh2YWx1ZXMgPSBjKDE5LCAyKSkgKw0KICAgIGxhYnMoeSA9ICJQZXJjZW50IENoYW5nZSIsIA0KICAgICAgICAgeCA9IE5VTEwsDQogICAgICAgICB0aXRsZSA9ICJBZHVsdHMiKSArDQogICAgdGhlbWVfYncoKSsNCiAgICB0aGVtZSgNCiAgICAgICNwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGwgPSAiZ3JheSIpLA0KICAgICAgLA0KICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoDQogICAgICAgIGFuZ2xlID0gNDUsDQogICAgICAgIGhqdXN0ID0gMSwNCiAgICAgICAgc2l6ZSA9IDEyDQogICAgICApLA0KICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwKSwNCiAgICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTIpDQogICAgKQ0KKQ0KDQpgYGANCg0KIyMgTW9kZWwgc2xvcGVzIHcvIEZUUCBhbmQgTGlmZSBTdGFnZQ0KDQojIyNWaXN1YWxpemUgUmVsYXRpb25zaGlwcw0KYGBge3J9DQooDQogIGJheWVzLnNsb3Blcy5saW5lYXIucGxvdCA8LSBnZ3NjYXR0ZXIoDQogICAgZGF0YSA9IHNsb3BlcywNCiAgICB4ID0gIkZUUCIsDQogICAgeSA9ICJCYXllcyBQZXJjZW50IENoYW5nZSIsDQogICAgY29sb3IgPSAiTGlmZSBTdGFnZSIsDQogICAgYWRkID0gInJlZy5saW5lIiwNCiAgICBhbHBoYSA9IDAuNQ0KICApICsNCiAgICBzdGF0X3JlZ2xpbmVfZXF1YXRpb24oYWVzKA0KICAgICAgbGFiZWwgPSAgcGFzdGUoLi5lcS5sYWJlbC4uLCAuLnJyLmxhYmVsLi4sIHNlcCA9ICJ+fn5+IiksDQogICAgICBjb2xvciA9IGBMaWZlIFN0YWdlYA0KICAgICksIHNpemUgPSAyLjUsIGxhYmVsLnkubnBjID0gImJvdHRvbSIpICsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoZW5kID0gMC45LCBvcHRpb24gPSAiQyIpICsNCiAgICBsYWJzKHkgPSAiUGVyY2VudCBDaGFuZ2UiKSArDQogICAgdGhlbWUodGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTIpKQ0KKQ0KDQpnZ3NhdmUoDQogIGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9iYXllc19mdHBfbGlmZV9zdGFnZV9zbG9wZXNfcmF3X2RhdGEudGlmZiIsDQogIGJheWVzLnNsb3Blcy5saW5lYXIucGxvdCwNCiAgd2lkdGggPSAyMDAsDQogIGhlaWdodCA9IDE1MCwNCiAgdW5pdHMgPSAibW0iLA0KICBkcGkgPSAzMDANCikNCg0KKA0KICBiYXllcy5zbG9wZXMubGluZWFyLnBsb3QucmVtb3ZlLnNwcCA8LSBnZ3NjYXR0ZXIoDQogICAgZGF0YSA9IHNsb3BlcyAlPiUNCiAgICAgIGZpbHRlcighU3BlY2llcyAlaW4lIGMoIlJhaW5ib3cgVHJvdXQiLCAiTm9ydGhlcm4gUGlrZSIpKSwNCiAgICB4ID0gIkZUUCIsDQogICAgeSA9ICJCYXllcyBQZXJjZW50IENoYW5nZSIsDQogICAgY29sb3IgPSAiTGlmZSBTdGFnZSIsDQogICAgYWRkID0gInJlZy5saW5lIiwNCiAgICBhbHBoYSA9IDAuNQ0KICApICsNCiAgICBzdGF0X3JlZ2xpbmVfZXF1YXRpb24oYWVzKA0KICAgICAgbGFiZWwgPSAgcGFzdGUoLi5lcS5sYWJlbC4uLCAuLnJyLmxhYmVsLi4sIHNlcCA9ICJ+fn5+IiksDQogICAgICBjb2xvciA9IGBMaWZlIFN0YWdlYA0KICAgICksIHNpemUgPSAyLjUsIGxhYmVsLnkubnBjID0gImJvdHRvbSIpICsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoZW5kID0gMC45LCBvcHRpb24gPSAiQyIpICsNCiAgICBsYWJzKHkgPSAiUGVyY2VudCBDaGFuZ2UiKSsNCiAgICB0aGVtZSh0ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMikpDQopDQoNCmdnc2F2ZSgNCiAgZmlsZW5hbWUgPSAifi9HaXRIdWIvRUFHRVJfZ3Jvd3RoL091dHB1dHMvRmlndXJlcy9MaW5lYXIgTW9kZWxzL2JheWVzX2Z0cF9saWZlX3N0YWdlX3Nsb3Blc19yYXdfZGF0YV9zcHBfcmVtb3ZlZC50aWZmIiwNCiAgYmF5ZXMuc2xvcGVzLmxpbmVhci5wbG90LnJlbW92ZS5zcHAsDQogIHdpZHRoID0gMjAwLA0KICBoZWlnaHQgPSAxNTAsDQogIHVuaXRzID0gIm1tIiwNCiAgZHBpID0gMzAwDQopDQoNCg0KKGJheWVzLnNsb3Blcy5ib3hwbG90IDwtIGdncGxvdChzbG9wZXMsIGFlcyh4ID0gYExpZmUgU3RhZ2VgLCB5ID0gc2xvcGVfYmF5ZXMpKSsNCiAgICBnZW9tX3BvaW50KGFlcyhjb2xvciA9IFNwZWNpZXMpKSsNCiAgICBnZW9tX2JveHBsb3Qob3V0bGllcnMgPSBGKQ0KKQ0KDQooYmF5ZXMucGMuYm94cGxvdCA8LSBnZ3Bsb3Qoc2xvcGVzLCBhZXMoeCA9IGBMaWZlIFN0YWdlYCwgeSA9IGBCYXllcyBQZXJjZW50IENoYW5nZWApKSsNCiAgZ2VvbV9wb2ludChhZXMoY29sb3IgPSBTcGVjaWVzKSkrDQogIGdlb21fYm94cGxvdChvdXRsaWVycyA9IEYpDQopDQoNCg0KYGBgDQoNCiMjIyBNb2RlbA0KTWV0YS1hbmFseXRpYyBtb2RlbA0KYGBge3J9DQpzbG9wZXMgPC0gc2xvcGVzICU+JSANCiAgcmVuYW1lKHNlX3Nsb3BlID0gRXN0LkVycm9yLmJlZ2luX2RhdGVfeWVhciwNCiAgICAgICAgIGxpZmVfc3RhZ2UgPSBgTGlmZSBTdGFnZWApDQoNCnNlY29uZF9tb2RlbF9iYXllcyA8LSBicm0oIGZvcm11bGEgPSBiZigNCiAgc2xvcGVfYmF5ZXMgfCBzZShzZV9zbG9wZSkgfiBGVFAqbGlmZV9zdGFnZSksDQogIGRhdGEgPSBzbG9wZXMsDQogIGZhbWlseSA9IGdhdXNzaWFuKCksDQogIGNoYWlucyA9IDQsDQogIGNvcmVzID0gNCwNCiAgY29udHJvbCA9IGxpc3QoYWRhcHRfZGVsdGEgPSAwLjgpDQopDQoNCnN1bW1hcnkoc2Vjb25kX21vZGVsX2JheWVzKQ0KYGBgDQoNClBvc3QtaG9jIGNvbXBhcmlzb25zDQpgYGB7cn0NCiMgJ2VtdHJlbmRzJyBlc3RpbWF0ZXMgdGhlIHNsb3BlIG9mIEZUUCB3aXRoaW4gZWFjaCBsaWZlX3N0YWdlIGxldmVsDQpmdHBfc2xvcGVzIDwtIGVtdHJlbmRzKHNlY29uZF9tb2RlbF9iYXllcywgfiBsaWZlX3N0YWdlLCB2YXIgPSAiRlRQIikNCnN1bW1hcnkoZnRwX3Nsb3BlcykNCnBhaXJzKGZ0cF9zbG9wZXMpICAjIENvbXBhcmUgRlRQIHNsb3BlIGJldHdlZW4gbGlmZSBzdGFnZXMNCmBgYA0KDQpFeHRyYWN0IHBvc3RlcmlvciBzdW1tYXJ5DQpgYGB7cn0NCiNjcmVhdGUgcmFuZ2Ugb2YgRlRQIHRvIHByZWRpY3Qgb3Zlcg0KcHJlZF9ncmlkIDwtIGV4cGFuZC5ncmlkKA0KICBGVFAgPSBzZXEobWluKHNsb3BlcyRGVFAsIG5hLnJtID0gVFJVRSksIG1heChzbG9wZXMkRlRQLCBuYS5ybSA9IFRSVUUpLCBsZW5ndGgub3V0ID0gMTAwKSwNCiAgbGlmZV9zdGFnZSA9IHVuaXF1ZShzbG9wZXMkbGlmZV9zdGFnZSksDQogIHNlX3Nsb3BlID0gMA0KKQ0KDQojZXh0cmFjdCBwb3N0ZXJpb3Igc3VtbWFyaWVzIGFuZCBpbnRlcnZhbHMgZm9yIGVhY2ggY29tYmluYXRpb24gb2YgRlRQIGFuZCBMaWZlIFN0YWdlDQpwcmVkaWN0aW9ucyA8LSBhZGRfZml0dGVkX2RyYXdzKA0KICBtb2RlbCA9IHNlY29uZF9tb2RlbF9iYXllcywNCiAgbmV3ZGF0YSA9IHByZWRfZ3JpZCwNCiAgcmVfZm9ybXVsYSA9IE5BICAjIEVuc3VyZXMgcG9wdWxhdGlvbi1sZXZlbCBwcmVkaWN0aW9uDQopDQoNCiNzdW1tYXJpemUNCnByZWRfc3VtbWFyeSA8LSBwcmVkaWN0aW9ucyAlPiUNCiAgZ3JvdXBfYnkoRlRQLCBsaWZlX3N0YWdlKSAlPiUNCiAgc3VtbWFyaXNlKA0KICAgIG1lZGlhbiA9IG1lZGlhbigudmFsdWUpLA0KICAgIGxvd2VyID0gcXVhbnRpbGUoLnZhbHVlLCAwLjAyNSksDQogICAgdXBwZXIgPSBxdWFudGlsZSgudmFsdWUsIDAuOTc1KQ0KICApICU+JQ0KICB1bmdyb3VwKCkNCmBgYA0KDQpQbG90DQpgYGB7cn0NCigNCiAgcGFydGlhbC5lZmZlY3RzLmxpZmUuc3RhZ2UuZnRwLnBsb3QgPC0gZ2dwbG90KA0KICAgIHByZWRfc3VtbWFyeSAlPiUgDQogICAgICBtdXRhdGUobGlmZV9zdGFnZSA9IGZjdF9yZWxldmVsKGxpZmVfc3RhZ2UsICJBZHVsdCIsICJKdXZlbmlsZSIpKSwNCiAgICBhZXMoDQogICAgICB4ID0gRlRQLA0KICAgICAgeSA9IG1lZGlhbiwNCiAgICAgIGNvbG9yID0gbGlmZV9zdGFnZSwNCiAgICAgIGZpbGwgPSBsaWZlX3N0YWdlDQogICAgKQ0KICApICsNCiAgICBnZW9tX3JpYmJvbigNCiAgICAgIGFlcyh5bWluID0gbG93ZXIsIHltYXggPSB1cHBlciksDQogICAgICBhbHBoYSA9IDAuMiwNCiAgICAgIGNvbG9yID0gTkENCiAgICApICsNCiAgICBnZW9tX2xpbmUoc2l6ZSA9IDEpICsNCiAgICBsYWJzKA0KICAgICAgeSA9ICJDaGFuZ2UgaW4gdG90YWwgbGVuZ3RoIChtbSkgcGVyIHllYXIiLA0KICAgICAgeCA9ICJGVFAiLA0KICAgICAgZmlsbCA9ICJMaWZlIFN0YWdlIiwNCiAgICAgIGNvbG9yID0gIkxpZmUgU3RhZ2UiDQogICAgKSArDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoZW5kID0gMC45LCBvcHRpb24gPSAiQyIpICsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoZW5kID0gMC45LCBvcHRpb24gPSAiQyIpICsNCiAgICB0aGVtZV9idygpDQopDQpgYGANCg0KIyMjIFJlbW92ZSBSYWluYm93IFRyb3V0IGFuZCBOb3J0aGVybiBQaWtlDQpgYGB7cn0NCnNlY29uZF9tb2RlbF9iYXllc19zcHBfcmVtb3ZlZCA8LSBicm0oIGZvcm11bGEgPSBiZigNCiAgc2xvcGVfYmF5ZXMgfCBzZShzZV9zbG9wZSkgfiBGVFAqbGlmZV9zdGFnZSksDQogIGRhdGEgPSBzbG9wZXMgJT4lIGZpbHRlcihTcGVjaWVzICVpbiUgYygiUmFpbmJvdyBUcm91dCIsICJOb3J0aGVybiBQaWtlIikpLA0KICBmYW1pbHkgPSBnYXVzc2lhbigpLA0KICBjaGFpbnMgPSA0LA0KICBjb3JlcyA9IDQsDQogIGNvbnRyb2wgPSBsaXN0KGFkYXB0X2RlbHRhID0gMC44KQ0KKQ0KDQpzdW1tYXJ5KHNlY29uZF9tb2RlbF9iYXllc19zcHBfcmVtb3ZlZCkNCmBgYA0KDQpQb3N0LWhvYyBjb21wYXJpc29ucw0KYGBge3J9DQojICdlbXRyZW5kcycgZXN0aW1hdGVzIHRoZSBzbG9wZSBvZiBGVFAgd2l0aGluIGVhY2ggbGlmZV9zdGFnZSBsZXZlbA0KZnRwX3Nsb3Blc19zcHBfcmVtb3ZlZCA8LSBlbXRyZW5kcyhzZWNvbmRfbW9kZWxfYmF5ZXNfc3BwX3JlbW92ZWQsIH4gbGlmZV9zdGFnZSwgdmFyID0gIkZUUCIpDQpzdW1tYXJ5KGZ0cF9zbG9wZXNfc3BwX3JlbW92ZWQpDQpwYWlycyhmdHBfc2xvcGVzX3NwcF9yZW1vdmVkKSAgIyBDb21wYXJlIEZUUCBzbG9wZSBiZXR3ZWVuIGxpZmUgc3RhZ2VzDQpgYGANCg0KRXh0cmFjdCBwb3N0ZXJpb3Igc3VtbWFyeQ0KYGBge3J9DQojY3JlYXRlIHJhbmdlIG9mIEZUUCB0byBwcmVkaWN0IG92ZXINCnByZWRfZ3JpZF9zcHBfcmVtb3ZlZCA8LSBleHBhbmQuZ3JpZCgNCiAgRlRQID0gc2VxKG1pbihzbG9wZXMkRlRQLCBuYS5ybSA9IFRSVUUpLCBtYXgoc2xvcGVzJEZUUCwgbmEucm0gPSBUUlVFKSwgbGVuZ3RoLm91dCA9IDEwMCksDQogIGxpZmVfc3RhZ2UgPSB1bmlxdWUoc2xvcGVzJGxpZmVfc3RhZ2UpLA0KICBzZV9zbG9wZSA9IDANCikNCg0KI2V4dHJhY3QgcG9zdGVyaW9yIHN1bW1hcmllcyBhbmQgaW50ZXJ2YWxzIGZvciBlYWNoIGNvbWJpbmF0aW9uIG9mIEZUUCBhbmQgTGlmZSBTdGFnZQ0KcHJlZGljdGlvbnNfc3BwX3JlbW92ZWQgPC0gYWRkX2ZpdHRlZF9kcmF3cygNCiAgbW9kZWwgPSBzZWNvbmRfbW9kZWxfYmF5ZXNfc3BwX3JlbW92ZWQsDQogIG5ld2RhdGEgPSBwcmVkX2dyaWRfc3BwX3JlbW92ZWQsDQogIHJlX2Zvcm11bGEgPSBOQSAgIyBFbnN1cmVzIHBvcHVsYXRpb24tbGV2ZWwgcHJlZGljdGlvbg0KKQ0KDQojc3VtbWFyaXplDQpwcmVkX3N1bW1hcnlfc3BwX3JlbW92ZWQgPC0gcHJlZGljdGlvbnNfc3BwX3JlbW92ZWQgJT4lDQogIGdyb3VwX2J5KEZUUCwgbGlmZV9zdGFnZSkgJT4lDQogIHN1bW1hcmlzZSgNCiAgICBtZWRpYW4gPSBtZWRpYW4oLnZhbHVlKSwNCiAgICBsb3dlciA9IHF1YW50aWxlKC52YWx1ZSwgMC4wMjUpLA0KICAgIHVwcGVyID0gcXVhbnRpbGUoLnZhbHVlLCAwLjk3NSkNCiAgKSAlPiUNCiAgdW5ncm91cCgpDQpgYGANCg0KUGxvdA0KYGBge3J9DQooDQogIHBhcnRpYWwuZWZmZWN0cy5saWZlLnN0YWdlLmZ0cC5wbG90LnNwcC5yZW1vdmVkIDwtIGdncGxvdCgNCiAgICBwcmVkX3N1bW1hcnlfc3BwX3JlbW92ZWQgJT4lDQogICAgICBtdXRhdGUobGlmZV9zdGFnZSA9IGZjdF9yZWxldmVsKGxpZmVfc3RhZ2UsICJBZHVsdCIsICJKdXZlbmlsZSIpKSwNCiAgICBhZXMoDQogICAgICB4ID0gRlRQLA0KICAgICAgeSA9IG1lZGlhbiwNCiAgICAgIGNvbG9yID0gbGlmZV9zdGFnZSwNCiAgICAgIGZpbGwgPSBsaWZlX3N0YWdlDQogICAgKQ0KICApICsNCiAgICBnZW9tX3JpYmJvbigNCiAgICAgIGFlcyh5bWluID0gbG93ZXIsIHltYXggPSB1cHBlciksDQogICAgICBhbHBoYSA9IDAuMiwNCiAgICAgIGNvbG9yID0gTkENCiAgICApICsNCiAgICBnZW9tX2xpbmUoc2l6ZSA9IDEpICsNCiAgICBsYWJzKA0KICAgICAgeSA9ICJDaGFuZ2UgaW4gdG90YWwgbGVuZ3RoIChtbSkgcGVyIHllYXIiLA0KICAgICAgeCA9ICJGVFAiLA0KICAgICAgZmlsbCA9ICJMaWZlIFN0YWdlIiwNCiAgICAgIGNvbG9yID0gIkxpZmUgU3RhZ2UiDQogICAgKSArDQogICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoDQogICAgICBlbmQgPSAwLjksDQogICAgICBvcHRpb24gPSAiQyINCiAgICApICsNCiAgICBzY2FsZV9jb2xvcl92aXJpZGlzX2QoDQogICAgICBlbmQgPSAwLjksDQogICAgICBvcHRpb24gPSAiQyINCiAgICApICsNCiAgICB0aGVtZV9idygpDQopDQpgYGANCg0KRnVsbHkgQmF5ZXNpYW4gdHdvLWxldmVsL2pvaW50IG1vZGVsIHZpYSBwb3N0ZXJpb3Igc2ltdWxhdGlvbiAtIGRpZCBub3QgZW5kIHVwIHVzaW5nIHRoaXMgYXBwcm9hY2gNCjwhLS0gIyBgYGB7cn0gLS0+DQo8IS0tICMgI2V4dHJhY3QgcG9zdGVyaW9yIGRyYXdzIC0tPg0KPCEtLSAjIGRyYXdzIDwtIGZpdDIgJT4lIC0tPg0KPCEtLSAjICAgc3ByZWFkX2RyYXdzKCAtLT4NCjwhLS0gIyAgICAgcl9zcGVjaWVzX2FnZV9ncm91cFtzcGVjaWVzX2FnZV9ncm91cCwgYmVnaW5fZGF0ZV95ZWFyXSAtLT4NCjwhLS0gIyAgICkgJT4lIC0tPg0KPCEtLSAjICAgbXV0YXRlKCAtLT4NCjwhLS0gIyAgICAgc2xvcGUgPSByX3NwZWNpZXNfYWdlX2dyb3VwIC0tPg0KPCEtLSAjICAgKSAlPiUgIC0tPg0KPCEtLSAjICAgI2Zvcm1hdCB0byBqb2luIC0tPg0KPCEtLSAjICAgc2VwYXJhdGUoc3BlY2llc19hZ2VfZ3JvdXAsIGludG8gPSBjKCJTcGVjaWVzIiwgIkFnZSIpLCBzZXAgPSAiWy8vLl0iKSAlPiUgIC0tPg0KPCEtLSAjICAgbXV0YXRlKFNwZWNpZXMgPSBTcGVjaWVzICU+JSAgLS0+DQo8IS0tICMgICAgICAgICAgICBzdHJfcmVwbGFjZV9hbGwoIl8iLCAiICIpICU+JSAgLS0+DQo8IS0tICMgICAgICAgICAgICBzdHJfdG9fdGl0bGUoKSkgJT4lICAtLT4NCjwhLS0gIyAgICNqb2luIHdpdGggb3RoZXIgY292YXJpYXRlcyB0byBzZXQgdXAgbW9kZWwgLS0+DQo8IS0tICMgICBsZWZ0X2pvaW4oc2xvcGVzICU+JSAgLS0+DQo8IS0tICMgICAgICAgICAgICAgICBzZWxlY3QoU3BlY2llcywgQWdlLCBGVFAsIGxpZmVfc3RhZ2UpLCAtLT4NCjwhLS0gIyAgICAgICAgICAgICBieSA9IGMoIlNwZWNpZXMiLCAiQWdlIikpIC0tPg0KPCEtLSAjICAtLT4NCjwhLS0gIyAjbmVzdCBwb3N0ZXJpb3IgZHJhd3MgLS0+DQo8IS0tICMgZHJhd3NfbmVzdGVkIDwtIGRyYXdzICU+JSAtLT4NCjwhLS0gIyAgIHNlbGVjdCguZHJhdywgU3BlY2llcywgQWdlLCBzbG9wZSwgRlRQLCBsaWZlX3N0YWdlKSAlPiUgLS0+DQo8IS0tICMgICBncm91cF9ieSguZHJhdykgJT4lIC0tPg0KPCEtLSAjICAgbmVzdCgpIC0tPg0KPCEtLSAjICAtLT4NCjwhLS0gIyAjZnVuY3Rpb24gdG8gZml0IGEgbGluZWFyIG1vZGVsIHNsb3BlIH4gRlRQICsgTGlmZSBTdGFnZSBmb3IgZWFjaCBwb3N0ZXJpb3IgZHJhdyAtLT4NCjwhLS0gIyBmaXRfbG1fZm9yX2RyYXcgPC0gZnVuY3Rpb24oZGYpIHsgLS0+DQo8IS0tICMgICBzdW1tYXJ5KGxtKHNsb3BlIH4gRlRQKmxpZmVfc3RhZ2UsIGRhdGEgPSBkZikpJGNvZWZbLCAiRXN0aW1hdGUiXSAtLT4NCjwhLS0gIyB9IC0tPg0KPCEtLSAjICAtLT4NCjwhLS0gIyAjYXBwbHkgdGhlIGZ1bmN0aW9uIHRvIGVhY2ggbmVzdGVkIGRhdGEgc2V0IC0tPg0KPCEtLSAjIGRyYXdzX25lc3RlZCA8LSBkcmF3c19uZXN0ZWQgJT4lIC0tPg0KPCEtLSAjICAgbXV0YXRlKGJldGEgPSBtYXAoZGF0YSwgZml0X2xtX2Zvcl9kcmF3KSkgLS0+DQo8IS0tICMgIC0tPg0KPCEtLSAjICN1bm5lc3QgcG9zdGVyaW9yIHNhbXBsZXMgLS0+DQo8IS0tICMgcG9zdGVyaW9yX2NvZWZzIDwtIGRyYXdzX25lc3RlZCAlPiUgLS0+DQo8IS0tICMgICBzZWxlY3QoLmRyYXcsIGJldGEpICU+JSAtLT4NCjwhLS0gIyAgIHVubmVzdF93aWRlcihiZXRhKSAgIyBPbmUgY29sdW1uIHBlciBjb2VmZmljaWVudCAtLT4NCjwhLS0gIyAgLS0+DQo8IS0tICMgcG9zdGhvY19kcmF3cyA8LSBwb3N0ZXJpb3JfY29lZnMgJT4lIC0tPg0KPCEtLSAjICAgcmVuYW1lKCAtLT4NCjwhLS0gIyAgICAgRlRQX21haW4gPSBGVFAsIC0tPg0KPCEtLSAjICAgICBGVFBfQWR1bHQgPSBgRlRQOmxpZmVfc3RhZ2VKdXZlbmlsZWAgICAgICAgICAgLS0+DQo8IS0tICMgICApJT4lIC0tPg0KPCEtLSAjICAgdHJhbnNtdXRlKCAtLT4NCjwhLS0gIyAgICAgZnRwX3Nsb3BlX2FkdWx0ID0gRlRQX21haW4sIC0tPg0KPCEtLSAjICAgICBmdHBfc2xvcGVfanV2ZW5pbGUgPSBGVFBfbWFpbiArIEZUUF9BZHVsdCwgLS0+DQo8IS0tICMgICAgIGZ0cF9zbG9wZV9kaWZmID0gRlRQX0FkdWx0ICAgICMgKEFkdWx0IC0gSnV2ZW5pbGUpLCBzYW1lIGFzIGludGVyYWN0aW9uIHRlcm0gLS0+DQo8IS0tICMgKSAtLT4NCjwhLS0gIyAgLS0+DQo8IS0tICMgcG9zdGVyaW9yX2NvZWZzX3N1bW1hcnkgPC0gcG9zdGhvY19kcmF3cyAlPiUgICAtLT4NCjwhLS0gIyAgIHN1bW1hcmlzZSggLS0+DQo8IS0tICMgICAgIGp1dmVuaWxlX3Nsb3BlX21lYW4gPSBtZWFuKGZ0cF9zbG9wZV9qdXZlbmlsZSksIC0tPg0KPCEtLSAjICAgICBqdXZlbmlsZV9zbG9wZV9sOTUgPSBxdWFudGlsZShmdHBfc2xvcGVfanV2ZW5pbGUsIDAuMDI1KSwgLS0+DQo8IS0tICMgICAgIGp1dmVuaWxlX3Nsb3BlX3U5NSA9IHF1YW50aWxlKGZ0cF9zbG9wZV9qdXZlbmlsZSwgMC45NzUpLCAtLT4NCjwhLS0gIyAgICAgYWR1bHRfc2xvcGVfbWVhbiA9IG1lYW4oZnRwX3Nsb3BlX2FkdWx0KSwgLS0+DQo8IS0tICMgICAgIGFkdWx0X3Nsb3BlX2w5NSA9IHF1YW50aWxlKGZ0cF9zbG9wZV9hZHVsdCwgMC4wMjUpLCAtLT4NCjwhLS0gIyAgICAgYWR1bHRfc2xvcGVfdTk1ID0gcXVhbnRpbGUoZnRwX3Nsb3BlX2FkdWx0LCAwLjk3NSksIC0tPg0KPCEtLSAjICAgICBkaWZmX21lYW4gPSBtZWFuKGZ0cF9zbG9wZV9kaWZmKSwgLS0+DQo8IS0tICMgICAgIGRpZmZfbDk1ID0gcXVhbnRpbGUoZnRwX3Nsb3BlX2RpZmYsIDAuMDI1KSwgLS0+DQo8IS0tICMgICAgIGRpZmZfdTk1ID0gcXVhbnRpbGUoZnRwX3Nsb3BlX2RpZmYsIDAuOTc1KSAtLT4NCjwhLS0gIyAgICkgLS0+DQo8IS0tICMgYGBgIC0tPg0KPCEtLSAjICAtLT4NCjwhLS0gIyBWaXN1YWxpemUgLS0+DQo8IS0tICMgYGBge3J9IC0tPg0KPCEtLSAjIHBvc3Rob2NfbG9uZyA8LSBwb3N0aG9jX2RyYXdzICU+JSAtLT4NCjwhLS0gIyAgIHBpdm90X2xvbmdlcihjb2xzID0gc3RhcnRzX3dpdGgoImZ0cF9zbG9wZV8iKSwgbmFtZXNfdG8gPSAidHlwZSIsIHZhbHVlc190byA9ICJ2YWx1ZSIpIC0tPg0KPCEtLSAjICAtLT4NCjwhLS0gIyAoZnRwLnBvc3Rlcmlvci5zbG9wZXMgPC0gZ2dwbG90KHBvc3Rob2NfbG9uZyAlPiUgIC0tPg0KPCEtLSAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIodHlwZSAlaW4lIGMoImZ0cF9zbG9wZV9qdXZlbmlsZSIsICJmdHBfc2xvcGVfYWR1bHQiKSkgJT4lICAtLT4NCjwhLS0gIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0YXRlKHR5cGUgPSBpZl9lbHNlKHR5cGUgPT0gImZ0cF9zbG9wZV9qdXZlbmlsZSIsICJBZHVsdCIsIkp1dmVuaWxlIikpLCAtLT4NCjwhLS0gIyAgICAgICAgYWVzKHggPSB2YWx1ZSwgZmlsbCA9IHR5cGUpKSArIC0tPg0KPCEtLSAjICAgZ2VvbV9kZW5zaXR5KGFscGhhID0gMC44KSArIC0tPg0KPCEtLSAjICAgbGFicyh4ID0gIkZUUCBTbG9wZSIsIHkgPSAiUG9zdGVyaW9yIERlbnNpdHkiLCAgLS0+DQo8IS0tICMgICAgICAgICN0aXRsZSA9ICJQb3N0ZXJpb3IgRlRQIFNsb3BlcyBieSBMaWZlIFN0YWdlIiwgLS0+DQo8IS0tICMgICAgICAgIGZpbGwgPSAiR3JvdXAiKSArIC0tPg0KPCEtLSAjICAgI3NjYWxlX2ZpbGxfbWFudWFsKGxhYmVscyA9IGMoIkFkdWx0IiwgIkp1dmVuaWxlIiksIHZhbHVlcyA9IGMoIiMxYjllNzciLCAiI2Q5NWYwMiIpKSAtLT4NCjwhLS0gIyAgIHNjYWxlX2ZpbGxfdmlyaWRpc19kKGVuZCA9IDAuOCwgb3B0aW9uID0gIkMiKSsgLS0+DQo8IS0tICMgICBzY2FsZV95X2NvbnRpbnVvdXMoZXhwYW5kID0gYygwLDApKSsgLS0+DQo8IS0tICMgICB0aGVtZV9idygpIC0tPg0KPCEtLSAjICkgLS0+DQo8IS0tICMgYGBgIC0tPg0KPCEtLSAjICAtLT4NCjwhLS0gIyBgYGB7cn0gLS0+DQo8IS0tICMgZ2dwbG90KHBvc3Rob2NfZHJhd3MsIGFlcyh4ID0gZnRwX3Nsb3BlX2RpZmYpKSArIC0tPg0KPCEtLSAjICAgZ2VvbV9kZW5zaXR5KGZpbGwgPSAiIzc1NzBiMyIsIGFscGhhID0gMC41KSArIC0tPg0KPCEtLSAjICAgZ2VvbV92bGluZShhZXMoeGludGVyY2VwdCA9IDApLCBsaW5ldHlwZSA9ICJkYXNoZWQiLCBjb2xvciA9ICJyZWQiKSArIC0tPg0KPCEtLSAjICAgbGFicyggLS0+DQo8IS0tICMgICAgIHggPSAiRGlmZmVyZW5jZSBpbiBGVFAgU2xvcGUgKEFkdWx0IC0gSnV2ZW5pbGUpIiwgLS0+DQo8IS0tICMgICAgIHkgPSAiUG9zdGVyaW9yIERlbnNpdHkiLCAtLT4NCjwhLS0gIyAgICAgdGl0bGUgPSAiUG9zdGVyaW9yIERpZmZlcmVuY2UgaW4gRlRQIFNsb3BlOiBBZHVsdCB2cyBKdXZlbmlsZSIgLS0+DQo8IS0tICMgICApIC0tPg0KPCEtLSAjICAtLT4NCjwhLS0gIyBjaSA8LSBxdWFudGlsZShwb3N0aG9jX2RyYXdzJGZ0cF9zbG9wZV9kaWZmLCBjKDAuMDI1LCAwLjk3NSkpIC0tPg0KPCEtLSAjIGdncGxvdChwb3N0aG9jX2RyYXdzLCBhZXMoeCA9IGZ0cF9zbG9wZV9kaWZmKSkgKyAtLT4NCjwhLS0gIyAgIGdlb21fZGVuc2l0eShmaWxsID0gIiM3NTcwYjMiLCBhbHBoYSA9IDAuNSkgKyAtLT4NCjwhLS0gIyAgIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IDAsIGxpbmV0eXBlID0gImRhc2hlZCIpICsgLS0+DQo8IS0tICMgICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSBjaSwgbGluZXR5cGUgPSAiZG90dGVkIiwgY29sb3IgPSAiZGFya2dyZXkiKSArIC0tPg0KPCEtLSAjICAgYW5ub3RhdGUoInRleHQiLCB4ID0gY2lbMV0sIHkgPSAwLCBsYWJlbCA9IHNwcmludGYoIiUuMmYiLCBjaVsxXSksIHZqdXN0ID0gLTEuNSkgKyAtLT4NCjwhLS0gIyAgIGFubm90YXRlKCJ0ZXh0IiwgeCA9IGNpWzJdLCB5ID0gMCwgbGFiZWwgPSBzcHJpbnRmKCIlLjJmIiwgY2lbMl0pLCB2anVzdCA9IC0xLjUpICsgLS0+DQo8IS0tICMgICBsYWJzKHggPSAiRGlmZmVyZW5jZSBpbiBGVFAgU2xvcGUgKEFkdWx0IC0gSnV2ZW5pbGUpIiwgeSA9ICJQb3N0ZXJpb3IgRGVuc2l0eSIpIC0tPg0KPCEtLSAjIGBgYCAtLT4NCg0KIyMjIE11bHRpcGFuZWwgZmlndXJlcw0KIyMjIyBGaWd1cmUgMw0KYGBge3J9DQpmaWczLmJheWVzIDwtIGdnYXJyYW5nZSgNCiAgYmF5ZXMuc2xvcGVzLmFsbC5hZ2UucGVyY2VudC5jaGFuZ2UucGxvdCwNCiAgcGFydGlhbC5lZmZlY3RzLmxpZmUuc3RhZ2UuZnRwLnBsb3QsIA0KICBiYXllcy5zbG9wZXMuYWxsLnBsb3QucGVyY2VudC5qdXZlbmlsZSwNCiAgYmF5ZXMuc2xvcGVzLmFsbC5wbG90LnBlcmNlbnQuYWR1bHQsDQogIG5jb2wgPSAyLA0KICBucm93ID0gMywNCiAgI2NvbW1vbi5sZWdlbmQgPSBULA0KICBsZWdlbmQgPSAicmlnaHQiLA0KICBsYWJlbHMgPSAiQVVUTyINCikNCg0KZmlnMy5iYXllcw0KDQpnZ3NhdmUoDQogIGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvTGluZWFyIE1vZGVscy9maWczX2JheWVzLnRpZmYiLA0KICBmaWczLmJheWVzLA0KICBkcGkgPSAzMDAsDQogIHdpZHRoID0gMzAwLA0KICBoZWlnaHQgPSAzMDAsDQogIHVuaXRzID0gIm1tIg0KKQ0KYGBgDQojIyMjIEZpZ3VyZSBTMTQNCmBgYHtyfQ0KZmlnUzE0IDwtIGdnYXJyYW5nZSgNCiAgYmF5ZXMuc2xvcGVzLmxpbmVhci5wbG90LA0KICBiYXllcy5zbG9wZXMubGluZWFyLnBsb3QucmVtb3ZlLnNwcCwNCiAgcGFydGlhbC5lZmZlY3RzLmxpZmUuc3RhZ2UuZnRwLnBsb3QsDQogIHBhcnRpYWwuZWZmZWN0cy5saWZlLnN0YWdlLmZ0cC5wbG90LnNwcC5yZW1vdmVkLA0KICBuY29sID0gMiwNCiAgbnJvdyA9IDIsDQogIGNvbW1vbi5sZWdlbmQgPSBULA0KICBsZWdlbmQgPSAicmlnaHQiLA0KICBsYWJlbHMgPSAiQVVUTyIsDQogIGhqdXN0ID0gLTEuNA0KKQ0KDQpmaWdTMTQNCg0KZ2dzYXZlKA0KICBmaWxlbmFtZSA9ICJ+L0dpdEh1Yi9FQUdFUl9ncm93dGgvT3V0cHV0cy9GaWd1cmVzL0xpbmVhciBNb2RlbHMvZmlnUzE0LnRpZmYiLA0KICBmaWdTMTQsDQogIGRwaSA9IDMwMCwNCiAgd2lkdGggPSAyMDAsDQogIGhlaWdodCA9IDE1MCwNCiAgdW5pdHMgPSAibW0iDQopDQpgYGANCg0KIyBQb3N0LTIwMTUNCkFnaW5nIHByb3RvY29scyBjaGFuZ2VkIGFmdGVyIDIwMTUgdG8gaW5jbHVkZSBtdWx0aXBsZSBzdHJ1Y3R1cmVzIGZvciBzb21lIHNwZWNpZXMuDQpXZSBhcmUgaW52ZXN0aWdhdGluZyBpZiB0aGVyZSBpcyBhbnkgZXZpZGVuY2UgdGhhdCB0cmVuZHMgY2hhbmdlIHBvc3QtMjAxNS4NCg0KIyMgUGxvdCByYXcgZGF0YQ0KYGBge3J9DQpncm93Lm1lcmdlLnRhcmdldC5zcHAuY2xlYW4gPC0gZ3Jvdy5tZXJnZS50YXJnZXQuc3BwICU+JSANCiAgbXV0YXRlKHNwZWNpZXMgPSBzcGVjaWVzICU+JSANCiAgICAgICAgICAgc3RyX3JlcGxhY2VfYWxsKCJfIiwgIiAiKSAlPiUgDQogICAgICAgICAgIHN0cl90b190aXRsZSgpKSAlPiUgDQogIHJlbmFtZShgQWdlIEdyb3VwYCA9IGFnZV9ncm91cCkNCg0KKGFsbC5zcHAueWVhciA8LSBnZ3Bsb3QoZGF0YSA9IGdyb3cubWVyZ2UudGFyZ2V0LnNwcC5jbGVhbiwgDQogICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IGJlZ2luX2RhdGVfeWVhciwgeSA9IGxlbmd0aF9tZWFuX21tLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IGBBZ2UgR3JvdXBgLCBmaWxsID0gYEFnZSBHcm91cGApKSsNCiAgICNnZW9tX3BvaW50KGFscGhhID0gMC4xKSsNCiAgIGdlb21fc21vb3RoKCkrDQogICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSAyMDE1LCBjb2xvciA9ICJyZWQiLCBsaW5ldHlwZSA9ICJkYXNoZWQiKSsNCiAgIGZhY2V0X3dyYXAofnNwZWNpZXMsIHNjYWxlcyA9ICJmcmVlIikrDQogICBzY2FsZV95X2NvbnRpbnVvdXMoZXhwYW5kID0gYygwLDApKSsNCiAgIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpKw0KICAgc2NhbGVfZmlsbF92aXJpZGlzX2QoKSsNCiAgIHRoZW1lX2J3KCkNCikNCg0KI05vIG9idmlvdXMgZGlmZmVyZW5jZXMgaW4gdHJlbmRzIHBvc3QtMjAxNQ0KDQpnZ3NhdmUoDQogIGZpbGVuYW1lID0gIn4vR2l0SHViL0VBR0VSX2dyb3d0aC9PdXRwdXRzL0ZpZ3VyZXMvcmF3X2RhdGFfc21vb3RoX3NwcF9hZ2VfZ3JvdXAudGlmZiIsDQogIGFsbC5zcHAueWVhciwNCiAgZHBpID0gMzAwLA0KICB3aWR0aCA9IDMwMCwNCiAgaGVpZ2h0ID0gMjUwLA0KICB1bml0cyA9ICJtbSINCikNCmBgYA0KDQoNCg==